on xenial help sign in
merge trunk.
commit1ddcc7d4ae11cf9e64baf50fdffd7771772d920b authorAntti Kaijanmäki <antti.kaijanmaki@canonical.com> dateWed 30 Jul 2014, 11:10 (12 years ago) parentdb22a7e25459c2
353 files changed+16244−5112
.bazaar/plugins/makecheck_unity_phablet.py+16−8 tests/autopilot/.project → .project+1−1 tests/autopilot/.pydevproject → .pydevproject+3−1 .settings/Autopilot List.launch+14 .settings/Autopilot Run.launch+14 build.sh+2 cmake/modules/QmlPlugins.cmake+29−22 cmake/modules/autopilot.cmake+2−2 data/unity8.conf+3 debian/changelog+295 debian/control+21−13 debian/rules+7 debian/unity8-private.install+1 doc/CMakeLists.txt+2 include/paths.h.in−8 plugins/AccountsService/AccountsService.qmltypes+22 plugins/CMakeLists.txt+1 plugins/Dash/CardCreator.js+7−4 plugins/Dash/Dash.qmltypes+95 plugins/Dash/ScopeStyle.qml+93 plugins/Dash/listviewwithpageheader.cpp+1−6 plugins/Dash/qmldir+1 plugins/HudClient/HudClient.qmltypes+91 plugins/LightDM/CMakeLists.txt+1 plugins/LightDM/DBusGreeter.cpp+65 plugins/LightDM/DBusGreeter.h+55 plugins/LightDM/Greeter.cpp+17 plugins/LightDM/Greeter.h+5 plugins/LightDM/LightDM.qmltypes+241 plugins/LightDM/plugin.cpp+3 plugins/Lights/CMakeLists.txt+18 plugins/Lights/Lights.cpp+182 plugins/Lights/Lights.h+75 plugins/Lights/Lights.qmltypes+45 plugins/Lights/plugin.cpp+35 plugins/Lights/plugin.h+34 plugins/Lights/qmldir+3 plugins/Powerd/Powerd.qmltypes+39 plugins/SessionBroadcast/SessionBroadcast.qmltypes+19 plugins/Ubuntu/CMakeLists.txt+1 plugins/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypes+60 plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+1 plugins/Ubuntu/Gestures/DirectionalDragArea.h+1 plugins/Ubuntu/Gestures/Gestures.qmltypes+154 plugins/Ubuntu/Payments/CMakeLists.txt+20 plugins/Ubuntu/Payments/Payments.cpp+118 plugins/Ubuntu/Payments/Payments.h+65 plugins/Ubuntu/Payments/Payments.qmltypes+42 qml/Stages/SidestageHandle.qml → plugins/Ubuntu/Payments/plugin.cpp+11−5 plugins/Ubuntu/Payments/plugin.h+31 plugins/Ubuntu/Payments/qmldir+3 plugins/Unity/Indicators/CMakeLists.txt+1−4 plugins/Unity/Indicators/qml/CachedUnityMenuModel.qml → plugins/Unity/Indicators/CachedUnityMenuModel.qml plugins/Unity/Indicators/Indicators.qmltypes+278 plugins/Unity/Indicators/qml/qmldir−13 plugins/Unity/Indicators/qmldir+6 plugins/Unity/Launcher/Launcher.qmltypes+174 plugins/Unity/Launcher/launcheritem.cpp+2−2 plugins/Unity/Launcher/launchermodel.cpp+6−3 plugins/Unity/Session/Session.qmltypes+25 plugins/Unity/Session/dbusunitysessionservice.cpp+33 plugins/Unity/Session/dbusunitysessionservice.h+61−4 plugins/Utils/CMakeLists.txt+1 plugins/Utils/Utils.qmltypes+143 plugins/Utils/easingcurve.cpp+8−2 plugins/Utils/plugin.cpp+2 plugins/Utils/windowkeysfilter.cpp+57 plugins/Utils/windowkeysfilter.h+51 po/am.po+60−28 po/ar.po+48−16 po/ast.po+57−25 po/az.po+48−16 po/bg.po+48−16 po/br.po+49−17 po/bs.po+46−14 po/ca.po+49−17 po/ckb.po+48−16 po/cs.po+48−16 po/da.po+87−52 po/de.po+52−20 po/el.po+57−25 po/en_AU.po+62−28 po/en_GB.po+55−23 po/eo.po+46−14 po/es.po+50−18 po/eu.po+56−24 po/fa.po+46−14 po/fi.po+49−17 po/fo.po+46−14 po/fr.po+52−20 po/gd.po+56−23 po/gl.po+57−23 po/he.po+49−17 po/hi.po+46−14 po/hr.po+46−14 po/hu.po+62−28 po/hy.po+46−14 po/id.po+46−14 po/is.po+75−38 po/it.po+49−17 po/ja.po+48−16 po/km.po+52−20 po/kn.po+46−14 po/ko.po+81−47 po/ky.po+46−14 po/lo.po+46−14 po/lt.po+48−16 po/lv.po+53−21 po/ml.po+49−17 po/mr.po+46−14 po/ms.po+48−16 po/my.po+48−16 po/nb.po+49−17 po/nl.po+64−30 po/pl.po+52−20 po/pt.po+86−51 po/pt_BR.po+52−20 po/ro.po+46−14 po/ru.po+48−16 po/shn.po+46−14 po/si.po+46−14 po/sl.po+49−17 po/sq.po+46−14 po/sr.po+46−14 po/sv.po+79−44 po/sw.po+47−15 po/ta.po+46−14 po/te.po+74−42 po/tr.po+52−20 po/ug.po+49−17 po/uk.po+49−17 po/unity8.pot+45−13 po/update-unity-pot+2−1 po/vi.po+46−14 po/xh.po+46−14 po/zh_CN.po+50−18 po/zh_HK.po+48−16 po/zh_TW.po+73−41 qml/Components/Background.qml+77 qml/Components/BaseCarouselDelegate.qml+19 qml/Components/Carousel.qml+5−14 qml/Components/Dialogs.qml+217 qml/Components/DraggingArea.qml+4 qml/Components/FilterGrid.qml−124 qml/Components/InputMethod.qml+79 qml/Components/ListItems/Header.qml+17−25 qml/Components/Lockscreen.qml+17−5 qml/Components/PageHeader.qml+228−313 qml/Components/PageHeaderLabel.qml−41 qml/Components/ResponsiveGridView.qml+2−1 qml/Components/SearchHistoryModel.qml → qml/Components/SearchHistoryModel/SearchHistoryModel.qml+1 qml/Components/SearchHistoryModel/qmldir+1 qml/Components/graphics/headerback@27.png qml/Dash/Apps/RunningApplicationTile.qml+42−34 qml/Dash/CardCarousel.qml+9−11 qml/Dash/CardFilterGrid.qml → qml/Dash/CardGrid.qml+22−21 qml/Dash/CardVerticalJournal.qml+5−22 qml/Dash/Dash.qml+14−15 qml/Dash/DashContent.qml+11−84 qml/Dash/DashDepartments.qml+8−7 qml/Dash/DashDepartmentsList.qml+19−17 qml/Dash/DashRenderer.qml+8−14 qml/Dash/GenericScopeView.qml+189−93 qml/Dash/PreviewListView.qml+9−25 qml/Dash/Previews/Preview.qml+4 qml/Dash/Previews/PreviewAudioPlayback.qml+3−3 qml/Dash/Previews/PreviewHeader.qml+1−1 qml/Dash/Previews/PreviewPayments.qml+56 qml/Dash/Previews/PreviewRatingDisplay.qml+3−4 qml/Dash/Previews/PreviewRatingInput.qml+2−4 qml/Dash/Previews/PreviewTextSummary.qml+2−4 qml/Dash/Previews/PreviewWidget.qml+3 qml/Dash/Previews/PreviewWidgetFactory.qml+5 qml/Dash/ScopeItem.qml−106 qml/Dash/graphics/icon_listview_clear@20.png qml/Dash/graphics/phone/screenshots/phone@12.png → qml/Dash/graphics/phone/screenshots/dialer@12.png qml/Dash/graphics/phone/screenshots/vkb_portrait.png qml/Dash/graphics/tick@30.png qml/Greeter/Greeter.qml+1−1 qml/Hud/HudParametrizedActionsPage.qml+2−2 qml/Launcher/Launcher.qml+34−4 qml/Launcher/LauncherDelegate.qml+36−13 qml/Launcher/LauncherPanel.qml+19−16 qml/Launcher/graphics/divider-line.png qml/Launcher/graphics/highlight@18.png qml/Launcher/graphics/home@18.png qml/Launcher/graphics/icon-top-highlight.png qml/Launcher/graphics/launcher_bg@30.png qml/Launcher/graphics/launcher_bg@30.sci−5 qml/Launcher/graphics/non-selected@18.png qml/Launcher/graphics/non-selected@18.sci−5 qml/Launcher/graphics/selected@18.png qml/Launcher/graphics/selected@18.sci−5 qml/Launcher/graphics/triangle@18.png qml/Notifications/Notification.qml+125−86 qml/Notifications/NotificationMenuItemFactory.qml+12−3 qml/Notifications/Notifications.qml+17−1 qml/Panel/ActiveCallHint.qml+206 qml/Panel/IndicatorRow.qml+1−1 qml/Panel/Indicators.qml+26−36 qml/Panel/Indicators/DefaultIndicatorPage.qml+3−2 qml/Panel/Indicators/DefaultIndicatorWidget.qml+22−31 plugins/Unity/Indicators/qml/IndicatorBase.qml → qml/Panel/Indicators/IndicatorBase.qml+2−3 qml/Panel/Indicators/IndicatorDelegate.qml+1−2 tests/mocks/Unity/Indicators/MenuItemFactory.qml → qml/Panel/Indicators/IndicatorsLight.qml+14−14 plugins/Unity/Indicators/qml/MenuItemFactory.qml → qml/Panel/Indicators/MenuItemFactory.qml+178−20 plugins/Unity/Indicators/qml/MessageMenuItemFactory.qml → qml/Panel/Indicators/MessageMenuItemFactory.qml+3−3 plugins/Unity/Indicators/qml/ModemInfoItem.qml → qml/Panel/Indicators/ModemInfoItem.qml plugins/Unity/Indicators/qml/RemoveBackground.qml → qml/Panel/Indicators/RemoveBackground.qml plugins/Unity/Indicators/qml/RoamingIndication.qml → qml/Panel/Indicators/RoamingIndication.qml qml/Panel/Panel.qml+128−109 qml/ScopeTool.qml−1 qml/Shell.qml+270−242 qml/Stages/Animations/BaseSurfaceAnimation.qml+93 qml/Stages/Animations/DarkenAndFadeInAnimation.qml+48 qml/Stages/Animations/SwipeFromBottomAnimation.qml+48 qml/Stages/Animations/SwipeUpAnimation.qml+49 qml/Stages/PhoneStage.qml+171−251 qml/Stages/Splash.qml+68 qml/Stages/SpreadDelegate.qml+187−23 qml/Stages/StageWithSideStage.qml−413 qml/Stages/SurfaceContainer.qml+123 qml/Stages/SwitchingApplicationImage.qml−81 qml/Stages/TabletStage.qml+568 qml/Stages/TransformedSpreadDelegate.qml+36−30 qml/Stages/TransformedTabletSpreadDelegate.qml+369 qml/graphics/applicationIcons/phone-app@18.png → qml/graphics/applicationIcons/dialer-app@18.png run.sh−6 src/CMakeLists.txt+1−3 src/CachingNetworkManagerFactory.cpp+62 src/CachingNetworkManagerFactory.h+50 src/Panel/Indicators/client/indicatorsclient.cpp−1 src/main.cpp+19−93 tests/autopilot/unity8/process_helpers.py+4−3 tests/autopilot/unity8/shell/emulators/dash.py+39−30 tests/autopilot/unity8/shell/emulators/main_window.py−5 tests/autopilot/unity8/shell/tests/__init__.py+1−2 tests/autopilot/unity8/shell/tests/disabled_test_hud.py+44−13 tests/autopilot/unity8/shell/tests/test_emulators.py+15−8 tests/autopilot/unity8/shell/tests/test_lock_screen.py+4−5 tests/autopilot/unity8/shell/tests/test_notifications.py+29−27 tests/autopilot/unity8/shell/tests/test_system_integration.py+10−5 tests/autopilot/unity8/shell/tests/test_upstart.py+33−11 tests/mocks/AccountsService/AccountsService.qmltypes+22 tests/mocks/GSettings.1.0/GSettings.qmltypes+42 tests/mocks/HudClient/HudClient.qmltypes+113 tests/mocks/LightDM/CMakeLists.txt+1 tests/mocks/LightDM/LightDM.qmltypes+241 tests/mocks/LightDM/single-pin/GreeterPrivate.cpp+1−9 tests/mocks/Powerd/Powerd.qmltypes+39 tests/mocks/QMenuModel/QDBusActionGroup.qml+60 tests/mocks/QMenuModel/QMenuModel.qmltypes+77 tests/mocks/QMenuModel/unitymenumodel.cpp+5 tests/mocks/QMenuModel/unitymenumodel.h+4 tests/mocks/QtMultimedia/QtMultimedia.qmltypes+52 tests/mocks/Ubuntu/CMakeLists.txt+2 tests/mocks/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypes+60 tests/mocks/Ubuntu/Payments/CMakeLists.txt+10 tests/mocks/Ubuntu/Payments/MockPayments.cpp+89 tests/mocks/Ubuntu/Payments/MockPayments.h+60 tests/mocks/Ubuntu/Payments/Payments.qmltypes+42 tests/mocks/Ubuntu/Payments/plugin.cpp+28 tests/mocks/Ubuntu/Payments/plugin.h+31 tests/mocks/Ubuntu/Payments/qmldir+3 tests/mocks/Ubuntu/Telephony/CMakeLists.txt+14 tests/mocks/Ubuntu/Telephony/ContactWatcherData.cpp+43 tests/mocks/Ubuntu/Telephony/ContactWatcherData.h+46 tests/mocks/Ubuntu/Telephony/MockCallEntry.cpp+66 tests/mocks/Ubuntu/Telephony/MockCallEntry.h+57 tests/mocks/Ubuntu/Telephony/MockCallManager.cpp+80 tests/mocks/Ubuntu/Telephony/MockCallManager.h+60 tests/mocks/Ubuntu/Telephony/MockContactWatcher.cpp+50 tests/mocks/Ubuntu/Telephony/MockContactWatcher.h+49 tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp+35 tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h+36 tests/mocks/Ubuntu/Telephony/plugin.cpp+52 tests/mocks/Ubuntu/Telephony/plugin.h+37 tests/mocks/Ubuntu/Telephony/qmldir+2 tests/mocks/Ubuntu/Thumbnailer/Thumbnailer.qmltypes+17 tests/mocks/Unity/Application/Application.qmltypes+311 tests/mocks/Unity/Application/ApplicationDBusAdaptor.cpp+75 tests/mocks/Unity/Application/ApplicationDBusAdaptor.h+43 tests/mocks/Unity/Application/ApplicationInfo.cpp+69−21 tests/mocks/Unity/Application/ApplicationInfo.h+21−8 tests/mocks/Unity/Application/ApplicationManager.cpp+63−34 tests/mocks/Unity/Application/ApplicationManager.h+15−9 tests/mocks/Unity/Application/CMakeLists.txt+8−3 tests/mocks/Unity/Application/MirSurfaceItem.cpp+172 tests/mocks/Unity/Application/MirSurfaceItem.h+121 tests/mocks/Unity/Application/SurfaceManager.cpp+73 tests/mocks/Unity/Application/SurfaceManager.h+54 tests/mocks/Unity/Application/VirtualKeyboard.cpp+55 tests/mocks/Unity/Application/VirtualKeyboard.h+35 tests/mocks/Unity/Application/plugin.cpp+16−9 tests/mocks/Unity/CMakeLists.txt+1−1 tests/mocks/Unity/Indicators/IndicatorBase.qml−38 tests/mocks/Unity/Indicators/Indicators.qmltypes+210 tests/mocks/Unity/Indicators/fakeindicatorsmodel.cpp+1−1 tests/mocks/Unity/Indicators/qmldir−2 tests/mocks/Unity/Launcher/Launcher.qmltypes+171 tests/mocks/Unity/Launcher/MockLauncherModel.cpp+7−2 tests/mocks/Unity/Notifications/Notifications.qmltypes+10 tests/mocks/Unity/Unity.qmltypes+353 tests/mocks/Unity/fake_categories.cpp+17−1 tests/mocks/Unity/fake_categories.h+2 tests/mocks/Unity/fake_scope.cpp+57−21 tests/mocks/Unity/fake_scope.h+3−1 tests/mocks/Unity/fake_scopes.cpp+1 tests/mocks/Unity/fake_unity_plugin.cpp+1 tests/mocks/libusermetrics/UserMetrics.cpp+3 tests/plugins/Dash/CMakeLists.txt+2 tests/plugins/Dash/cardcreator/1.res+3−2 tests/plugins/Dash/cardcreator/2.res+5−5 tests/plugins/Dash/cardcreator/3.res+6−4 tests/plugins/Dash/cardcreator/4.res+4−3 tests/plugins/Dash/cardcreator/5.res+3−2 tests/plugins/Dash/cardcreator/6.res+67 tests/plugins/Dash/cardcreator/6.tst+3 tests/plugins/Dash/tst_ScopeStyle.qml+176 tests/plugins/LightDM/CMakeLists.txt+1−1 tests/plugins/LightDM/dbus.cpp+40 tests/plugins/Unity/Indicators/unitymenumodelstacktest.cpp+3 tests/plugins/Unity/Launcher/launchermodeltest.cpp+9 tests/qmltests/CMakeLists.txt+7−5 tests/qmltests/Components/tst_Background.qml+90 tests/qmltests/Components/tst_Carousel.qml+48−2 tests/qmltests/Components/tst_FilterGrid.qml−190 tests/qmltests/Components/tst_PageHeaderLabel.qml → tests/qmltests/Components/tst_PageHeader.qml+90−54 tests/qmltests/Components/tst_PageHeader/logo-ubuntu-orange.svg+60 tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml+25−4 tests/qmltests/Dash/Previews/tst_Preview.qml+2−2 tests/qmltests/Dash/Previews/tst_PreviewPayments.qml+100 tests/qmltests/Dash/Previews/tst_PreviewRatingDisplay.qml+13 tests/qmltests/Dash/tst_Dash.qml+1−40 tests/qmltests/Dash/tst_DashContent.qml+20−158 tests/qmltests/Dash/tst_GenericScopeView.qml+226−85 tests/qmltests/Greeter/tst_Lockscreen.qml+1−1 tests/qmltests/Launcher/tst_Launcher.qml+13−4 tests/qmltests/Notifications/tst_Notifications.qml+18−23 tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+1−1 tests/qmltests/Panel/Indicators/tst_DefaultIndicatorPage.qml+1 tests/qmltests/Panel/Indicators/tst_DefaultIndicatorWidget.qml+3−40 tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+65−2 tests/qmltests/Panel/Indicators/tst_MessageMenuItemFactory.qml+2−2 tests/qmltests/Panel/tst_ActiveCallHint.qml+166 tests/qmltests/Panel/tst_Indicators.qml+10−21 tests/qmltests/Panel/tst_Panel.qml+147−96 tests/qmltests/Stages/tst_PhoneStage.qml+9−56 tests/qmltests/tst_Shell.qml+122−30 tests/qmltests/tst_ShellWithPin.qml+203 tests/utils/modules/Unity/Test/Test.qmltypes+59 tests/whitespace/check_whitespace.py+22−12 tools/scopetool.cpp−2
.bazaar/plugins/makecheck_unity_phablet.py+16−8
@@ -1,5 +1,5 @@
11#!/usr/bin/python
2−# Copyright 2013 Canonical Ltd.
2+# Copyright 2013, 2014 Canonical Ltd.
33#
44# This program is free software; you can redistribute it and/or modify
55# it under the terms of the GNU Lesser General Public License as published by
@@ -13,11 +13,15 @@
1313# You should have received a copy of the GNU Lesser General Public License
1414# along with this program. If not, see <http://www.gnu.org/licenses/>.
1515
16−import os, subprocess
17−from bzrlib import branch, errors
18−from bzrlib.urlutils import dirname, local_path_from_url
16+import os
17+import subprocess
18+from bzrlib import branch
19+from bzrlib.urlutils import local_path_from_url
1920
20−def execute_makecheck(local_branch, master_branch, old_revision_number, old_revision_id, future_revision_number, future_revision_id, tree_delta, future_tree):
21+
22+def execute_makecheck(
23+ local_branch, master_branch, old_revision_number, old_revision_id,
24+ future_revision_number, future_revision_id, tree_delta, future_tree):
2125 if not master_branch.basis_tree().has_filename("qml/Shell.qml"):
2226 return
2327
@@ -27,7 +31,9 @@ def execute_makecheck(local_branch, master_branch, old_revision_number, old_revi
2731 os.environ['CTEST_OUTPUT_ON_FAILURE'] = "1"
2832 if (subprocess.call("make -C builddir test", shell=True) != 0):
2933
30− print("\n\n*** Warning ***\n\nBasic tests failed. This commit will not pass continuous integration.")
34+ print("\n\n*** Warning ***\n\n"
35+ "Basic tests failed. This commit will not pass continuous "
36+ "integration.")
3137
3238 branch = local_branch or master_branch
3339 revision = branch.repository.get_revision(future_revision_id)
@@ -36,8 +42,10 @@ def execute_makecheck(local_branch, master_branch, old_revision_number, old_revi
3642 msg_file.close()
3743
3844 print("\n\nSaved commit message to $SRC_DIR/message.txt.")
39− print("You can uncommit this revision, fix the tests and reuse your message running:\n\nbzr commit -F message.txt\n\n")
45+ print("You can uncommit this revision, fix the tests and reuse your "
46+ "message running:\n\nbzr commit -F message.txt\n\n")
4047 elif os.path.isfile("message.txt"):
4148 os.remove("message.txt")
4249
43−branch.Branch.hooks.install_named_hook('pre_commit', execute_makecheck, 'make check pre-commit')
50+branch.Branch.hooks.install_named_hook(
51+ 'pre_commit', execute_makecheck, 'make check pre-commit')
tests/autopilot/.project → .projectrenamed+1−1
@@ -1,6 +1,6 @@
11<?xml version="1.0" encoding="UTF-8"?>
22<projectDescription>
3− <name>Unity8 Autopilot</name>
3+ <name>Unity8</name>
44 <comment></comment>
55 <projects>
66 </projects>
tests/autopilot/.pydevproject → .pydevprojectrenamed+3−1
@@ -1,7 +1,9 @@
11<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22<?eclipse-pydev version="1.0"?><pydev_project>
33<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
4−<path>/Unity8 Autopilot</path>
4+<path>/Unity8/tests/autopilot</path>
5+<path>/Unity8/.bazaar</path>
6+<path>/Unity8/tests/whitespace</path>
57</pydev_pathproperty>
68<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
79<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
.settings/Autopilot List.launchnew file+14
@@ -0,0 +1,14 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+<launchConfiguration type="org.python.pydev.debug.regularLaunchConfigurationType">
3+<stringAttribute key="bad_container_name" value="/Unity8/.pyd"/>
4+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"/>
5+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"/>
6+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
7+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
8+</listAttribute>
9+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="/usr/bin/autopilot"/>
10+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_OTHER_WORKING_DIRECTORY" value=""/>
11+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="list unity8"/>
12+<stringAttribute key="org.python.pydev.debug.ATTR_INTERPRETER" value="__default"/>
13+<stringAttribute key="org.python.pydev.debug.ATTR_PROJECT" value="Unity8"/>
14+</launchConfiguration>
.settings/Autopilot Run.launchnew file+14
@@ -0,0 +1,14 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+<launchConfiguration type="org.python.pydev.debug.regularLaunchConfigurationType">
3+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"/>
4+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"/>
5+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
6+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
7+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
8+</listAttribute>
9+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="/usr/bin/autopilot"/>
10+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_OTHER_WORKING_DIRECTORY" value=""/>
11+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="run ${string_prompt:the test suite to run:unity8}"/>
12+<stringAttribute key="org.python.pydev.debug.ATTR_INTERPRETER" value="__default"/>
13+<stringAttribute key="org.python.pydev.debug.ATTR_PROJECT" value="Unity8"/>
14+</launchConfiguration>
build.sh+2
@@ -42,11 +42,13 @@ install_dependencies() {
4242 equivs \
4343 gsettings-desktop-schemas \
4444 gsettings-ubuntu-schemas \
45+ pay-service \
4546 qmenumodel-qml \
4647 qml-module-qtquick-xmllistmodel \
4748 qtdeclarative5-gsettings1.0 \
4849 qtdeclarative5-ubuntu-ui-toolkit-plugin \
4950 qtdeclarative5-ubuntu-settings-components \
51+ qtdeclarative5-ubuntu-telephony0.1 \
5052 qtdeclarative5-ubuntu-thumbnailer0.1 \
5153 unity-notifications-impl \
5254 ubuntu-mobile-icons \
cmake/modules/QmlPlugins.cmake+29−22
@@ -12,6 +12,12 @@ if(NOT TARGET qmlplugindump)
1212 set_target_properties(qmlplugindump PROPERTIES IMPORTED_LOCATION ${qmlplugindump_exe})
1313endif()
1414
15+#
16+# A custom target for building the qmltypes files manually.
17+#
18+if (NOT TARGET qmltypes)
19+ add_custom_target(qmltypes)
20+endif()
1521
1622# Creates a target for copying resource files into build dir and optionally installing them.
1723#
@@ -51,6 +57,7 @@ macro(export_qmlfiles PLUGIN PATH)
5157 ${QMLFILES_SEARCH_PATH}/*.png
5258 ${QMLFILES_SEARCH_PATH}/*.sci
5359 ${QMLFILES_SEARCH_PATH}/*.svg
60+ ${QMLFILES_SEARCH_PATH}/*.qmltypes
5461 ${QMLFILES_SEARCH_PATH}/qmldir
5562 )
5663
@@ -69,14 +76,14 @@ macro(export_qmlfiles PLUGIN PATH)
6976 DESTINATION ${QMLFILES_DESTINATION}/${PATH}
7077 )
7178 endif()
72−endmacro(export_qmlfiles)
79+endmacro()
7380
7481
75−# Creates a target for generating the typeinfo file for a QML plugin and optionally installs it
76−# and additional targets.
82+# Creates a target for generating the typeinfo file for a QML plugin and/or installs the plugin
83+# targets.
7784#
7885# Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed
79−# into ${DESTINATION}/${path}. If you don't pass BINARY_DIR, it's assumed that current source
86+# into ${DESTINATION}/${path}. If you don't pass BINARY_DIR, it's assumed that current source
8087# path ends with ${path}.
8188#
8289# The generated file will be named after the last segment of the plugin name, e.g. Foo.qmltypes.
@@ -87,15 +94,18 @@ endmacro(export_qmlfiles)
8794# [TARGET_PREFIX string] # Will be prefixed to the target name
8895# [ENVIRONMENT string] # Will be added to qmlplugindump's env
8996# [TARGETS target1 [target2 ...]] # Targets to depend on and install (e.g. the plugin shared object)
97+# [NO_TYPES] # Do not create the qmltypes target
9098# )
9199#
92100# Created target:
93−# - ${TARGET_PREFIX}${plugin}-qmltypes - Generates the qmltypes file in the binary dir.
101+# - ${TARGET_PREFIX}${plugin}-qmltypes - Generates the qmltypes file in the source dir.
102+# It will be made a dependency of the "qmltypes" target.
94103
95104macro(export_qmlplugin PLUGIN VERSION PATH)
105+ set(options NO_TYPES)
96106 set(single BINARY_DIR DESTINATION TARGET_PREFIX ENVIRONMENT)
97107 set(multi TARGETS)
98− cmake_parse_arguments(QMLPLUGIN "" "${single}" "${multi}" ${ARGN})
108+ cmake_parse_arguments(QMLPLUGIN "${options}" "${single}" "${multi}" ${ARGN})
99109
100110 get_target_property(qmlplugindump_executable qmlplugindump LOCATION)
101111
@@ -103,29 +113,26 @@ macro(export_qmlplugin PLUGIN VERSION PATH)
103113 set(qmlplugin_dir ${QMLPLUGIN_BINARY_DIR}/${PATH})
104114 else()
105115 # Find import path to point qmlplugindump at
106− string(REGEX REPLACE "${PATH}$" "" QMLPLUGIN_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
116+ string(REGEX REPLACE "/${PATH}$" "" QMLPLUGIN_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
107117 set(qmlplugin_dir ${CMAKE_CURRENT_BINARY_DIR})
108118 endif()
109119
110− # Find the last segment of the plugin name to use as qmltypes basename
111− string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN})
112− set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN})
113− set(qmltypes_path ${qmlplugin_dir}/${plugin_suffix}.qmltypes)
120+ if(NOT QMLPLUGIN_NO_TYPES)
121+ # Relative path for the module
122+ string(REPLACE "${CMAKE_BINARY_DIR}/" "" QMLPLUGIN_MODULE_DIR "${QMLPLUGIN_BINARY_DIR}")
123+
124+ # Find the last segment of the plugin name to use as qmltypes basename
125+ string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN})
126+ set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN})
127+ set(qmltypes_path ${CMAKE_CURRENT_SOURCE_DIR}/${plugin_suffix}.qmltypes)
114128
115− # Only generate typeinfo if not cross compiling
116− if(NOT CMAKE_CROSSCOMPILING)
117− add_custom_target(${target_prefix}-qmltypes ALL
129+ add_custom_target(${target_prefix}-qmltypes
118130 COMMAND env ${QMLPLUGIN_ENVIRONMENT} ${qmlplugindump_executable} -notrelocatable
119− ${PLUGIN} ${VERSION} ${QMLPLUGIN_BINARY_DIR} > ${qmltypes_path}
131+ ${PLUGIN} ${VERSION} ${QMLPLUGIN_MODULE_DIR} > ${qmltypes_path}
132+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
120133 )
121134 add_dependencies(${target_prefix}-qmltypes ${target_prefix}-qmlfiles ${QMLPLUGIN_TARGETS})
122−
123− if (QMLPLUGIN_DESTINATION)
124− # Install the typeinfo file
125− install(FILES ${qmltypes_path}
126− DESTINATION ${QMLPLUGIN_DESTINATION}/${PATH}
127− )
128− endif()
135+ add_dependencies(qmltypes ${target_prefix}-qmltypes)
129136 endif()
130137
131138 set_target_properties(${QMLPLUGIN_TARGETS} PROPERTIES
cmake/modules/autopilot.cmake+2−2
@@ -2,7 +2,7 @@ add_custom_target(autopilot)
22
33function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
44 add_custom_target(autopilot-${TEST_NAME}
5− COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python3 -m autopilot.run run ${TEST_SUITE}
5+ COMMAND LANG=C QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python3 -m autopilot.run run ${TEST_SUITE}
66 WORKING_DIRECTORY ${WORKING_DIR}
77 DEPENDS fake_install
88 )
@@ -14,7 +14,7 @@ function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
1414 add_dependencies(autopilot autopilot-${TEST_NAME})
1515
1616 add_custom_target(autopilot2-${TEST_NAME}
17− COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python2 -m autopilot.run run ${TEST_SUITE}
17+ COMMAND LANG=C QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python2 -m autopilot.run run ${TEST_SUITE}
1818 WORKING_DIRECTORY ${WORKING_DIR}
1919 DEPENDS fake_install
2020 )
data/unity8.conf+3
@@ -44,6 +44,8 @@ pre-start script
4444 rm "$MIR_SERVER_FILE"
4545 fi
4646
47+ initctl set-env --global MIR_SERVER_PROMPT_FILE=1
48+
4749 initctl emit scope-ui-starting
4850 initctl emit --no-wait indicator-services-start
4951end script
@@ -53,4 +55,5 @@ exec ${BINARY:-unity8} $ARGS
5355post-stop script
5456 initctl set-env --global MIR_SOCKET=$UNITY_MIR_SOCKET
5557 initctl unset-env --global UNITY_MIR_SOCKET
58+ initctl unset-env --global MIR_SERVER_PROMPT_FILE
5659end script
debian/changelog+295
@@ -1,3 +1,298 @@
1+unity8 (8.00+14.10.20140729-0ubuntu1) utopic; urgency=medium
2+
3+ [ Gerry Boland ]
4+ [ Daniel d'Andrada ]
5+ * Re-architecture unity8 to use the QtMirCompositor library so that
6+ the Qt scenegraph renderer is used as the Mir compositor, and
7+ application surfaces are added to the QML scene as items.
8+
9+ [ Michael Zanetti ]
10+ * Port phone right-edge spread code to use QtCompositor
11+ * Add right-edge spread animation for tablet
12+
13+ [ Ubuntu daily release ]
14+ * New rebuild forced
15+
16+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 29 Jul 2014 15:07:32 +0000
17+
18+unity8 (7.90+14.10.20140725-0ubuntu1) utopic; urgency=low
19+
20+ [ CI bot ]
21+ * Resync trunk
22+
23+ [ Michał Sawicz ]
24+ * Fix the ap test for applications.
25+
26+ [ Albert Astals ]
27+ * Use deleteLater instead of a direct delete We are seeing a crash in
28+ QQuickWindowPrivate::polishItems because LVWPH is deleting items to
29+ polish from it's updatePolish which means the set in
30+ QQuickWindowPrivate::polishItems may end up with some yet-to-
31+ process-but-now-deleted items. Switching to deleteLater fixes this
32+
33+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 25 Jul 2014 10:47:34 +0000
34+
35+unity8 (7.90+14.10.20140724.1-0ubuntu1) utopic; urgency=low
36+
37+ [ Michael Zanetti ]
38+ * properly parent launcher items (LP: #1347902)
39+
40+ [ Michał Sawicz ]
41+ * Move the PyDev project files to the root, supporting .py scripts
42+ outside of tests/autopilot. Add Autopilot Run and List launch
43+ configurations to easily support debugging in Eclipse. Use
44+ add_unity8_mock macro in the Telephony plugin.
45+ * Drop FilterGrid and refactor height animations in GenericScopeView.
46+ Also implement forced category expansion. (LP: #1326470)
47+ * Move expansion button from section header to category footer. (LP:
48+ #1261300)
49+ * Fix expect-sigstop enviroment variable name. (LP: #1346819)
50+ * Make headerless categories easier Instead of having no header
51+ category (which is a bit confusing since the LVWPH code was designed
52+ so that when a category has no header it is because it shares the
53+ category with the previous one) what we have for headerless
54+ categories is a header of height 0, this way everything works as it
55+ should and results in cleaner code in the LVWPH and in
56+ GenericScopeView
57+ * Add support for header links.
58+ * Add dash PageHeader styling.
59+
60+ [ Albert Astals ]
61+ * Make headerless categories easier Instead of having no header
62+ category (which is a bit confusing since the LVWPH code was designed
63+ so that when a category has no header it is because it shares the
64+ category with the previous one) what we have for headerless
65+ categories is a header of height 0, this way everything works as it
66+ should and results in cleaner code in the LVWPH and in
67+ GenericScopeView
68+
69+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 24 Jul 2014 20:41:29 +0000
70+
71+unity8 (7.90+14.10.20140723.4-0ubuntu1) utopic; urgency=low
72+
73+ [ thomas-voss ]
74+ * Explicitly select gcc version.
75+
76+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 23 Jul 2014 15:32:41 +0000
77+
78+unity8 (7.90+14.10.20140721.1-0ubuntu1) utopic; urgency=low
79+
80+ [ Michael Terry ]
81+ * Allow running the dialer-app in emergency mode when the screen is
82+ locked.
83+
84+ [ Michał Sawicz ]
85+ * Add missing nameOwner property to mock UnityMenuModel.
86+
87+ [ Albert Astals ]
88+ * Fix name, There's nothing called pageHeader in this file
89+
90+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 21 Jul 2014 14:57:08 +0000
91+
92+unity8 (7.90+14.10.20140717.3-0ubuntu1) utopic; urgency=low
93+
94+ [ Nick Dedekind ]
95+ * Added environment variable to upstart conf for mir trusted socket
96+ * Removed indicator menu dismissal on menu activation (LP: #1337771)
97+
98+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 17 Jul 2014 16:35:52 +0000
99+
100+unity8 (7.90+14.10.20140717.1-0ubuntu1) utopic; urgency=low
101+
102+ [ Michał Sawicz ]
103+ * Only generate .qmltypes files manually, no need to do it build-time.
104+ It didn't work when cross-compiling either, and required builders to
105+ have otherwise unnecessary environment.
106+ * Fix CardCreator test. It got broken with a merge that got landed
107+ along side of it.
108+
109+ [ Ying-Chun Liu ]
110+ * Add reboot/shutdown (LP: #1234062)
111+
112+ [ Albert Astals ]
113+ * Make the departments test more stable
114+
115+ [ Mirco Müller ]
116+ * Fixes gap at top of sim-unlock/fullscreen notification (point 1.),
117+ fixes blocking overlay if underlying UnityMenuModel vanishes from
118+ DBus (point 2.). The third bullet-point of the bug-report, lockup of
119+ shell-UI, could not be reproduced. (LP: #1308011)
120+
121+ [ Michael Terry ]
122+ * Expose a new greeter DBus property, IsActive, which tells apps and
123+ indicators when the integrated-greeter screen is active. Useful for
124+ switching UI modes when the screen is locked.
125+ * Allow the session to bring up the greeter/lockscreen over DBus. The
126+ emergency dialer will need this support in order to cancel bringing
127+ it up.
128+
129+ [ Michael Zanetti ]
130+ * Fixes gap at top of sim-unlock/fullscreen notification (point 1.),
131+ fixes blocking overlay if underlying UnityMenuModel vanishes from
132+ DBus (point 2.). The third bullet-point of the bug-report, lockup of
133+ shell-UI, could not be reproduced. (LP: #1308011)
134+
135+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 17 Jul 2014 09:38:20 +0000
136+
137+unity8 (7.90+14.10.20140714-0ubuntu1) utopic; urgency=low
138+
139+ [ Michał Sawicz ]
140+ * Activate all results in click scope by default. (LP: #1341262)
141+
142+ [ Mirco Müller ]
143+ * Added support for utilization of the ComboButton SDK-element for
144+ snap-decision notifications with many actions.
145+
146+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 14 Jul 2014 18:20:25 +0000
147+
148+unity8 (7.90+14.10.20140709.2-0ubuntu1) utopic; urgency=low
149+
150+ [ Michal Hruby ]
151+ * Fix FTBFS when using latest unity-api.
152+
153+ [ Michał Sawicz ]
154+ * Refactor carousel item activation.
155+ * Refactor ScopeItem into GenericScopeView.
156+ * Add initial support for scope customizations.
157+ * Make rating stars in PreviewReviewDisplay.qml non-interactive. (LP:
158+ #1337508)
159+
160+ [ Nick Dedekind ]
161+ * Added active call hint A hint is displayed in the indicator panel
162+ when an call is active on the Telephony Serivce
163+
164+ [ Albert Astals ]
165+ * We need to boostrap height also when we have 1 item ^_^ (LP:
166+ #1337408)
167+ * Add initial support for scope customizations.
168+ * CardCreator: Give a correct implicitHeight if we only have art The
169+ hasSubtitle change is really unrelated and not needed here, just
170+ sneaking it in to not create yet another review. (LP: #1330899)
171+ * Fake Scopes Plugin: Register PreviewModelInterface
172+
173+ [ Michael Zanetti ]
174+ * make the launcher's drag'n'drop indicator more prominent (LP:
175+ #1332042)
176+ * make launcher items live having them non-live is not really required
177+ and reveals an issue in combination with UbuntuShape (LP: #1302761)
178+ * Fade out launcher in place instead of moving it to the left on long
179+ left edge swipes. (LP: #1332096)
180+ * update launcher icon glow as requested by design (LP: #1336725)
181+ * update header in dash to use the new header from the SDK (LP:
182+ #1335491)
183+ * fix testPreview with larger GRID_UNIT_PX values
184+ * clip the corner of pinned icons in the launcher as per new design
185+ * update launcher background according to latest design (LP: #1336314)
186+ * Update Launcher's home button design according to new spec. (LP:
187+ #1329331)
188+
189+ [ CI bot ]
190+ * make launcher items live having them non-live is not really required
191+ and reveals an issue in combination with UbuntuShape (LP: #1302761)
192+
193+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 09 Jul 2014 19:46:11 +0000
194+
195+unity8 (7.90+14.10.20140707-0ubuntu1) utopic; urgency=low
196+
197+ [ Nick Dedekind ]
198+ * Added support for TransferMenu
199+
200+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 07 Jul 2014 11:40:59 +0000
201+
202+unity8 (7.90+14.10.20140703.1-0ubuntu1) utopic; urgency=low
203+
204+ [ Michał Sawicz ]
205+ * Initial code for a payment button widget, to handle purchasing apps
206+ from the click scope.
207+
208+ [ Nick Dedekind ]
209+ * Moved [Message]MenuItemFacotory from Unity.Indicators plugin to qml
210+ folder.
211+
212+ [ Albert Astals ]
213+ * EasingCurve: Initialize members
214+ * Fix valgrind warning by not emitting reset on model destructor That
215+ won't be supported until Qt 5.4 More info at https://bugreports.qt-
216+ project.org/browse/QTBUG-39780 Warning was ==16693== Invalid read of
217+ size 8 ==16693== at 0x72B19A0: QQmlContext::isValid() const
218+ (qqmlcontext.cpp:231) ==16693== by 0x736C82B:
219+ QQmlDelegateModelPrivate::emitChanges() (qqmldelegatemodel.cpp:1412)
220+ ==16693== by 0x7372AE6: QQmlDelegateModel::_q_modelReset()
221+ (qqmldelegatemodel.cpp:1463) ==16693== by 0x7397224:
222+ QQmlDelegateModel::qt_static_metacall(QObject*, QMetaObject::Call,
223+ int, void**) (moc_qqmldelegatemodel_p.cpp:196) ==16693== by
224+ 0x739769E: QQmlDelegateModel::qt_metacall(QMetaObject::Call, int,
225+ void**) (moc_qqmldelegatemodel_p.cpp:292) ==16693== by 0x66379CC:
226+ QMetaObject::activate(QObject*, int, int, void**) (in
227+ /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==16693== by
228+ 0x65AEEFD: QAbstractItemModel::endResetModel() (in /usr/lib/x86_64-
229+ linux-gnu/libQt5Core.so.5.3.0) ==16693== by 0x23461EFD:
230+ FakeIndicatorsModel::unload() (fakeindicatorsmodel.cpp:53) ==16693==
231+ by 0x23461E13: FakeIndicatorsModel::~FakeIndicatorsModel()
232+ (fakeindicatorsmodel.cpp:34) ==16693== by 0x2345C073:
233+ QQmlPrivate::QQmlElement<FakeIndicatorsModel>::~QQmlElement() (in
234+ /home/tsdgeos_work/phablet/unity8/investigate_test_shell_crash/build
235+ dir/tests/mocks/Unity/Indicators/libIndicatorsFakeQml.so) ==16693==
236+ by 0x2345C0A3:
237+ QQmlPrivate::QQmlElement<FakeIndicatorsModel>::~QQmlElement()
238+ (qqmlprivate.h:106) ==16693== by 0x663636B:
239+ QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-
240+ gnu/libQt5Core.so.5.3.0) ==16693== Address 0x1862d448 is 8 bytes
241+ inside a block of size 16 free'd ==16693== at 0x4C2C2BC: operator
242+ delete(void*) (vg_replace_malloc.c:503) ==16693== by 0x72B21B8:
243+ QQmlContextData::destroy() (qqmlcontext.cpp:647) ==16693== by
244+ 0x7293458: QQmlPrivate::qdeclarativeelement_destructor(QObject*)
245+ (qqmlengine.cpp:612) ==16693== by 0x6C0CADD:
246+ QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement()
247+ (qqmlprivate.h:105) ==16693== by 0x663636B:
248+ QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-
249+ gnu/libQt5Core.so.5.3.0) ==16693== by 0x663F0EB: QObject::~QObject()
250+ (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==16693== by
251+ 0x6BF64B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==16693==
252+ by 0x6C0CAE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement()
253+ (qqmlprivate.h:106) ==16693== by 0x663636B:
254+ QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-
255+ gnu/libQt5Core.so.5.3.0) ==16693== by 0x663F0EB: QObject::~QObject()
256+ (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==16693== by
257+ 0x6BF64B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==16693==
258+ by 0x6C0CAE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement()
259+ (qqmlprivate.h:106) (LP: #1332598)
260+
261+ [ Michael Zanetti ]
262+ * drop launcher item spacing (LP: #1332022)
263+ * change wording in launcher quicklist (LP: #1332035)
264+
265+ [ Alejandro J. Cura ]
266+ * Initial code for a payment button widget, to handle purchasing apps
267+ from the click scope.
268+
269+ [ Rodney Dawes ]
270+ * Initial code for a payment button widget, to handle purchasing apps
271+ from the click scope.
272+
273+ [ Renato Araujo Oliveira Filho ]
274+ * Create IndicatorsLight.qml component used to control indicator led.
275+ A blue led will pulse if the message indicator is blue and screen is
276+ off.
277+
278+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 03 Jul 2014 14:47:46 +0000
279+
280+unity8 (7.90+14.10.20140701.2-0ubuntu2) utopic; urgency=medium
281+
282+ * debian/control:
283+ list qtdeclarative5-ubuntu-ui-toolkit-plugin-gles as an alternative
284+ choice, since provides are not versionned, should restore installability
285+ on amd64 and i386
286+
287+ -- Sebastien Bacher <seb128@ubuntu.com> Thu, 03 Jul 2014 13:26:38 +0200
288+
289+unity8 (7.90+14.10.20140701.2-0ubuntu1) utopic; urgency=medium
290+
291+ [ Michał Sawicz ]
292+ * Adapt to suru theme.
293+
294+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 01 Jul 2014 15:10:35 +0000
295+
1296unity8 (7.89+14.10.20140627-0ubuntu1) utopic; urgency=low
2297
3298 [ Michael Terry ]
debian/control+21−13
@@ -7,18 +7,23 @@ Build-Depends: cmake,
77 debhelper (>= 9),
88 doxyqml,
99 graphviz,
10+# We rely on C++11 features, and to prevent from ABI breaks
11+# in libstdc++ causing us issues, we explicitly select a G++
12+# version.
13+ g++-4.9,
1014 libdee-qt5-dev (>= 3.2),
1115 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
1216 libgl1-mesa-dri,
1317 libgles2-mesa-dev[armhf],
1418 libglib2.0-dev,
1519 libgsettings-qt-dev,
20+ libhardware-dev,
1621 libhud-client2-dev,
22+ libpay2-dev,
1723 libpulse-dev,
18− libqmenumodel-dev (>= 0.2.7),
24+ libqmenumodel-dev (>= 0.2.8),
1925 libqt5xmlpatterns5-dev,
20− libunity-api-dev (>= 7.83),
21− libunity-mir-dev,
26+ libunity-api-dev (>= 7.85),
2227 libusermetricsoutput1-dev,
2328 libxcb1-dev,
2429 pkg-config,
@@ -37,8 +42,8 @@ Build-Depends: cmake,
3742 qtdeclarative5-dev-tools,
3843 qtdeclarative5-private-dev (>= 5.2.1),
3944 qtdeclarative5-qtmultimedia-plugin,
40− qtdeclarative5-ubuntu-settings-components,
41− qtdeclarative5-ubuntu-ui-toolkit-plugin,
45+ qtdeclarative5-ubuntu-settings-components (>= 0.3),
46+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
4247 ttf-ubuntu-font-family,
4348Standards-Version: 3.9.4
4449Homepage: http://launchpad.net/unity
@@ -50,8 +55,8 @@ Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
5055
5156Package: indicators-client
5257Architecture: amd64 armhf i386
53−Depends: qmenumodel-qml (>= 0.2.7),
54− qtdeclarative5-ubuntu-ui-toolkit-plugin,
58+Depends: qmenumodel-qml (>= 0.2.8),
59+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
5560 unity8 (= ${binary:Version}),
5661 ${misc:Depends},
5762 ${shlibs:Depends},
@@ -74,11 +79,12 @@ Provides: indicator-renderer,
7479Depends: gsettings-desktop-schemas,
7580 libcap2-bin,
7681 libglib2.0-bin,
77− libunity-mir1 (>= 0.4),
78− qmenumodel-qml (>= 0.2.7),
82+ qmenumodel-qml (>= 0.2.8),
7983 qml-module-qtquick-xmllistmodel,
8084 qtdeclarative5-gsettings1.0,
81− qtdeclarative5-ubuntu-settings-components,
85+ qtdeclarative5-qtmir-plugin (>= 0.4),
86+ qtdeclarative5-ubuntu-settings-components (>= 0.3),
87+ qtdeclarative5-ubuntu-telephony0.1,
8288 unity-launcher-impl-3,
8389 unity8-common (= ${source:Version}),
8490 unity8-private (= ${binary:Version}),
@@ -99,13 +105,13 @@ Description: Unity 8 shell
99105Package: unity8-common
100106Architecture: all
101107Depends: qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
102− qtdeclarative5-ubuntu-ui-toolkit-plugin,
103− qtdeclarative5-unity-notifications-plugin | unity-notifications-impl,
108+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
109+ qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
104110 ubuntu-thumbnailer-impl-0,
105111 unity-application-impl-2,
106112 unity-notifications-impl-3,
107113 unity-plugin-scopes | unity-scopes-impl,
108− unity-scopes-impl-0,
114+ unity-scopes-impl-2,
109115 unity8-fake-env | unity-application-impl,
110116 ${misc:Depends},
111117Breaks: unity8 (<< 7.86),
@@ -159,7 +165,9 @@ Architecture: any
159165Multi-Arch: same
160166Pre-Depends: ${misc:Pre-Depends},
161167Depends: gsettings-ubuntu-schemas,
168+ libhardware2,
162169 libunity-core-6.0-9,
170+ pay-service,
163171 ${misc:Depends},
164172 ${shlibs:Depends},
165173Provides: unity-launcher-impl,
debian/rules+7
@@ -1,11 +1,18 @@
11#!/usr/bin/make -f
22# -*- makefile -*-
33
4+include /usr/share/dpkg/default.mk
5+
46# Uncomment this to turn on verbose mode.
57#export DH_VERBOSE=1
68export DPKG_GENSYMBOLS_CHECK_LEVEL=4
79export NO_PNG_PKG_MANGLE=1
810
11+# Explicitly selecting a G{CC,++}-version here to avoid accidental
12+# ABI breaks introduced by toolchain updates.
13+export CC=$(DEB_HOST_GNU_TYPE)-gcc-4.9
14+export CXX=$(DEB_HOST_GNU_TYPE)-g++-4.9
15+
916%:
1017 dh $@ --parallel --fail-missing --with python2,python3
1118
debian/unity8-private.install+1
@@ -2,6 +2,7 @@ usr/lib/*/unity8/qml/AccountsService
22usr/lib/*/unity8/qml/Dash
33usr/lib/*/unity8/qml/HudClient
44usr/lib/*/unity8/qml/LightDM
5+usr/lib/*/unity8/qml/Lights
56usr/lib/*/unity8/qml/Powerd
67usr/lib/*/unity8/qml/SessionBroadcast
78usr/lib/*/unity8/qml/Ubuntu
doc/CMakeLists.txt+2
@@ -15,6 +15,8 @@ else()
1515 ${CMAKE_SOURCE_DIR}/src/*.cpp
1616 ${CMAKE_SOURCE_DIR}/plugins/*.h
1717 ${CMAKE_SOURCE_DIR}/plugins/*.cpp
18+ ${CMAKE_SOURCE_DIR}/plugins/*.qml
19+ ${CMAKE_SOURCE_DIR}/plugins/*.js
1820 ${CMAKE_SOURCE_DIR}/qml/*.qml
1921 ${CMAKE_SOURCE_DIR}/qml/*.js
2022 ${CMAKE_SOURCE_DIR}/tests/autopilot/*.py
include/paths.h.in−8
@@ -127,12 +127,4 @@ inline void appendImportPaths(QQmlEngine *engine, const QStringList &paths)
127127 engine->setImportPathList(importPathList);
128128}
129129
130−inline void resolveIconTheme() {
131− const char *ubuntuIconTheme = getenv("UBUNTU_ICON_THEME");
132− if (ubuntuIconTheme == NULL) {
133− ubuntuIconTheme = "ubuntu-mobile";
134− }
135− QIcon::setThemeName(ubuntuIconTheme);
136−}
137−
138130#endif
plugins/AccountsService/AccountsService.qmltypesnew file+22
@@ -0,0 +1,22 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable AccountsService 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "AccountsService"
12+ prototype: "QObject"
13+ exports: ["AccountsService/AccountsService 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Property { name: "user"; type: "string" }
18+ Property { name: "demoEdges"; type: "bool" }
19+ Property { name: "backgroundFile"; type: "string"; isReadonly: true }
20+ Property { name: "statsWelcomeScreen"; type: "bool"; isReadonly: true }
21+ }
22+}
plugins/CMakeLists.txt+1
@@ -14,6 +14,7 @@ endmacro()
1414add_subdirectory(AccountsService)
1515add_subdirectory(HudClient)
1616add_subdirectory(LightDM)
17+add_subdirectory(Lights)
1718add_subdirectory(Dash)
1819add_subdirectory(Powerd)
1920add_subdirectory(SessionBroadcast)
plugins/Dash/CardCreator.js+7−4
@@ -289,6 +289,7 @@ function cardString(template, components) {
289289 property var cardData; \n\
290290 property var artShapeBorderSource: undefined; \n\
291291 property real fontScale: 1.0; \n\
292+ property var scopeStyle: null; \n\
292293 property int headerAlignment: Text.AlignLeft; \n\
293294 property int fixedHeaderHeight: -1; \n\
294295 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
@@ -305,7 +306,7 @@ function cardString(template, components) {
305306 var hasTitle = components["title"] || false;
306307 var hasMascot = components["mascot"] || false;
307308 var headerAsOverlay = hasArt && template && template["overlay"] === true && (hasTitle || hasMascot);
308− var hasSubtitle = components["subtitle"] || false;
309+ var hasSubtitle = hasTitle && components["subtitle"] || false;
309310 var hasHeaderRow = hasMascot && hasTitle;
310311
311312 if (hasBackground) {
@@ -407,7 +408,7 @@ function cardString(template, components) {
407408 mascotCode = kMascotImageCode.arg(anchors).arg(mascotImageVisible);
408409 }
409410
410− var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : "grey"';
411+ var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : (root.scopeStyle ? root.scopeStyle.foreground : "grey")';
411412
412413 var titleSubtitleCode = "";
413414 if (hasTitle) {
@@ -419,7 +420,7 @@ function cardString(template, components) {
419420 } else if (hasBackground) {
420421 color = summaryColorWithBackground;
421422 } else {
422− color = '"grey"';
423+ color = 'root.scopeStyle ? root.scopeStyle.foreground : "grey"';
423424 }
424425
425426 var titleAnchors;
@@ -495,7 +496,7 @@ function cardString(template, components) {
495496 if (hasBackground) {
496497 color = summaryColorWithBackground;
497498 } else {
498− color = '"grey"';
499+ color = 'root.scopeStyle ? root.scopeStyle.foreground : "grey"';
499500 }
500501
501502 var summaryTopMargin = (hasMascot || hasSubtitle ? 'anchors.margins' : '0');
@@ -513,6 +514,8 @@ function cardString(template, components) {
513514 code += 'implicitHeight: subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
514515 } else if (hasTitle) {
515516 code += 'implicitHeight: titleLabel.y + titleLabel.height + units.gu(1);\n';
517+ } else if (hasArt) {
518+ code += 'implicitHeight: artShapeHolder.height;\n';
516519 }
517520 // Close the AbstractButton
518521 code += '}\n';
plugins/Dash/Dash.qmltypesnew file+95
@@ -0,0 +1,95 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Dash 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "AbstractDashView"
12+ defaultProperty: "data"
13+ prototype: "QQuickItem"
14+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
15+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
16+ Property { name: "columnSpacing"; type: "double" }
17+ Property { name: "rowSpacing"; type: "double" }
18+ Property { name: "displayMarginBeginning"; type: "double" }
19+ Property { name: "displayMarginEnd"; type: "double" }
20+ }
21+ Component {
22+ name: "HorizontalJournal"
23+ defaultProperty: "data"
24+ prototype: "AbstractDashView"
25+ exports: ["Dash/HorizontalJournal 0.1"]
26+ exportMetaObjectRevisions: [0]
27+ Property { name: "rowHeight"; type: "double" }
28+ }
29+ Component {
30+ name: "ListViewWithPageHeader"
31+ defaultProperty: "flickableData"
32+ prototype: "QQuickFlickable"
33+ exports: ["Dash/ListViewWithPageHeader 0.1"]
34+ exportMetaObjectRevisions: [0]
35+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
36+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
37+ Property { name: "pageHeader"; type: "QQuickItem"; isPointer: true }
38+ Property { name: "sectionDelegate"; type: "QQmlComponent"; isPointer: true }
39+ Property { name: "sectionProperty"; type: "string" }
40+ Property { name: "forceNoClip"; type: "bool" }
41+ Property { name: "stickyHeaderHeight"; type: "int"; isReadonly: true }
42+ Signal { name: "headerChanged" }
43+ Method { name: "positionAtBeginning" }
44+ Method { name: "showHeader" }
45+ Method {
46+ name: "item"
47+ type: "QQuickItem*"
48+ Parameter { name: "modelIndex"; type: "int" }
49+ }
50+ Method {
51+ name: "maximizeVisibleArea"
52+ type: "bool"
53+ Parameter { name: "modelIndex"; type: "int" }
54+ }
55+ Method {
56+ name: "maximizeVisibleArea"
57+ type: "bool"
58+ Parameter { name: "modelIndex"; type: "int" }
59+ Parameter { name: "itemHeight"; type: "int" }
60+ }
61+ }
62+ Component {
63+ name: "OrganicGrid"
64+ defaultProperty: "data"
65+ prototype: "AbstractDashView"
66+ exports: ["Dash/OrganicGrid 0.1"]
67+ exportMetaObjectRevisions: [0]
68+ Property { name: "smallDelegateSize"; type: "QSizeF" }
69+ Property { name: "bigDelegateSize"; type: "QSizeF" }
70+ }
71+ Component {
72+ name: "VerticalJournal"
73+ defaultProperty: "data"
74+ prototype: "AbstractDashView"
75+ exports: ["Dash/VerticalJournal 0.1"]
76+ exportMetaObjectRevisions: [0]
77+ Property { name: "columnWidth"; type: "double" }
78+ }
79+ Component {
80+ prototype: "QObject"
81+ name: "CardCreatorCache"
82+ exports: ["CardCreatorCache -1.-1"]
83+ exportMetaObjectRevisions: [-1]
84+ isComposite: true
85+ isCreatable: false
86+ isSingleton: true
87+ Property { name: "cache"; type: "QVariant" }
88+ Method {
89+ name: "getCardComponent"
90+ type: "QVariant"
91+ Parameter { name: "template"; type: "QVariant" }
92+ Parameter { name: "components"; type: "QVariant" }
93+ }
94+ }
95+}
plugins/Dash/ScopeStyle.qmlnew file+93
@@ -0,0 +1,93 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.2
18+
19+/*! \brief Helper for processing scope customization options.
20+
21+ It will take the customizations object passed by the scope and
22+ process it to provide the scope UI with data such as colors or
23+ image paths.
24+ */
25+
26+QtObject {
27+ /// Style object passed from the scope
28+ property var style: Object()
29+
30+ /*! \brief Calculate luminance of the passed color
31+
32+ \note If not fully opaque, luminance is dependant on blending.
33+ */
34+ function luminance(color) {
35+ return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
36+ }
37+
38+ /// Color used for text and symbolic icons
39+ readonly property color foreground: "foreground-color" in style ? style["foreground-color"] : d.defaultDark
40+
41+ /// Color used for the overall background
42+ readonly property color background: "background-color" in style ? style["background-color"] : "transparent"
43+
44+ /*! \brief Luminance threshold for switching between fore and background color
45+
46+ \note If background colour is not fully opaque, it's not taken into account.
47+ */
48+ readonly property real threshold: background.a !== 1.0 ? d.foregroundLuminance : (d.foregroundLuminance + d.backgroundLuminance) / 2
49+
50+ /*! \brief The lighter of foreground and background colors
51+
52+ \note If background color is not fully opaque, it's not taken into account
53+ and defaults to the theme-provided light color.
54+ */
55+ readonly property color light: {
56+ if (background.a !== 1.0) return d.foregroundLuminance > d.defaultLightLuminance ? foreground : d.defaultLight;
57+ return d.foregroundLuminance > d.backgroundLuminance ? foreground : background;
58+ }
59+
60+ /*! \brief The darker of foreground and background colors
61+
62+ \note If background color is not fully opaque, it's not taken into account
63+ and defaults to the theme-provided dark color.
64+ */
65+ readonly property color dark: {
66+ if (background.a !== 1.0) return d.foregroundLuminance < d.defaultDarkLuminance ? foreground : d.defaultDark;
67+ return d.foregroundLuminance < d.backgroundLuminance ? foreground : background;
68+ }
69+
70+ /// Source of the logo image for the header
71+ readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
72+
73+ /// Background style for the header
74+ readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : ""
75+
76+ /// Foreground color for the header
77+ readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
78+
79+ //! @cond
80+ property var d: QtObject {
81+ readonly property real foregroundLuminance: luminance(foreground)
82+ readonly property real backgroundLuminance: luminance(background)
83+
84+ // FIXME: should be taken from the theme
85+ readonly property color defaultLight: "white"
86+ readonly property color defaultDark: "grey"
87+ readonly property real defaultLightLuminance: luminance(defaultLight)
88+ readonly property real defaultDarkLuminance: luminance(defaultDark)
89+
90+ readonly property var headerStyle: "page-header" in style ? style["page-header"] : { }
91+ }
92+ //! @endcond
93+}
plugins/Dash/listviewwithpageheader.cpp+1−6
@@ -141,8 +141,6 @@ void ListViewWithPageHeader::ListItem::setCulled(bool culled)
141141void ListViewWithPageHeader::ListItem::setSectionItem(QQuickItem *sectionItem)
142142{
143143 m_sectionItem = sectionItem;
144− QQmlContext *context = QQmlEngine::contextForObject(m_item)->parentContext();
145− context->setContextProperty(QLatin1String("hasSectionHeader"), QVariant::fromValue<bool>(sectionItem != nullptr));
146144}
147145
148146ListViewWithPageHeader::ListViewWithPageHeader()
@@ -658,7 +656,7 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
658656 if (flags & QQmlDelegateModel::Destroyed) {
659657 item->setParentItem(nullptr);
660658 }
661− delete listItem->sectionItem();
659+ listItem->sectionItem()->deleteLater();
662660 delete listItem;
663661}
664662
@@ -685,8 +683,6 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(int modelIndex, bool alreadyI
685683 return nullptr;
686684
687685 const QString section = m_delegateModel->stringValue(modelIndex, m_sectionProperty);
688− if (section.isEmpty())
689− return nullptr;
690686
691687 if (modelIndex > 0) {
692688 const QString prevSection = m_delegateModel->stringValue(modelIndex - 1, m_sectionProperty);
@@ -877,7 +873,6 @@ void ListViewWithPageHeader::itemCreated(int modelIndex, QObject *object)
877873 QQmlContext *context = QQmlEngine::contextForObject(item)->parentContext();
878874 context->setContextProperty(QLatin1String("ListViewWithPageHeader"), this);
879875 context->setContextProperty(QLatin1String("heightToClip"), QVariant::fromValue<int>(0));
880− context->setContextProperty(QLatin1String("hasSectionHeader"), QVariant::fromValue<bool>(false));
881876 if (modelIndex == m_asyncRequestedIndex) {
882877 createItem(modelIndex, false);
883878 refill();
plugins/Dash/qmldir+1
@@ -2,3 +2,4 @@ module Dash
22plugin Dash-qml
33typeinfo Dash.qmltypes
44singleton CardCreatorCache 0.1 CardCreatorCache.qml
5+ScopeStyle 0.1 ScopeStyle.qml
plugins/HudClient/HudClient.qmltypesnew file+91
@@ -0,0 +1,91 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable HudClient 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "DeeListModel"
12+ prototype: "QAbstractListModel"
13+ Property { name: "name"; type: "string" }
14+ Property { name: "synchronized"; type: "bool"; isReadonly: true }
15+ Property { name: "count"; type: "int"; isReadonly: true }
16+ Signal {
17+ name: "nameChanged"
18+ Parameter { type: "string" }
19+ }
20+ Signal {
21+ name: "synchronizedChanged"
22+ Parameter { type: "bool" }
23+ }
24+ Signal {
25+ name: "roleNamesChanged"
26+ Parameter { type: "QHash<int,QByteArray>" }
27+ }
28+ Method {
29+ name: "get"
30+ type: "QVariantMap"
31+ Parameter { name: "row"; type: "int" }
32+ }
33+ Method { name: "count"; type: "int" }
34+ }
35+ Component {
36+ name: "HudClient"
37+ prototype: "QObject"
38+ exports: ["HudClient/HudClient 0.1"]
39+ exportMetaObjectRevisions: [0]
40+ Property { name: "results"; type: "DeeListModel"; isReadonly: true; isPointer: true }
41+ Property { name: "toolBarModel"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
42+ Signal { name: "voiceQueryLoading" }
43+ Signal { name: "voiceQueryListening" }
44+ Signal { name: "voiceQueryHeardSomething" }
45+ Signal { name: "voiceQueryFailed" }
46+ Signal {
47+ name: "voiceQueryFinished"
48+ Parameter { name: "query"; type: "string" }
49+ }
50+ Signal { name: "commandExecuted" }
51+ Signal {
52+ name: "showParametrizedAction"
53+ Parameter { name: "action"; type: "string" }
54+ Parameter { name: "items"; type: "QVariant" }
55+ }
56+ Method {
57+ name: "executeCommand"
58+ Parameter { name: "index"; type: "int" }
59+ }
60+ Method {
61+ name: "setQuery"
62+ Parameter { name: "new_query"; type: "string" }
63+ }
64+ Method { name: "startVoiceQuery" }
65+ Method {
66+ name: "executeParametrizedAction"
67+ Parameter { name: "values"; type: "QVariant" }
68+ }
69+ Method {
70+ name: "updateParametrizedAction"
71+ Parameter { name: "values"; type: "QVariant" }
72+ }
73+ Method { name: "cancelParametrizedAction" }
74+ Method {
75+ name: "executeToolBarAction"
76+ Parameter { name: "action"; type: "HudClientQueryToolbarItems" }
77+ }
78+ }
79+ Component {
80+ name: "VolumePeakDetector"
81+ prototype: "QObject"
82+ exports: ["HudClient/VolumePeakDetector 0.1"]
83+ exportMetaObjectRevisions: [0]
84+ Property { name: "enabled"; type: "bool" }
85+ Property { name: "desiredInterval"; type: "int" }
86+ Signal {
87+ name: "newPeak"
88+ Parameter { name: "volume"; type: "float" }
89+ }
90+ }
91+}
plugins/LightDM/CMakeLists.txt+1
@@ -15,6 +15,7 @@ include_directories(
1515
1616set(QMLPLUGIN_SRC
1717 ../Utils/qsortfilterproxymodelqml.cpp # FIXME evaluate a more generic approach for using other plugins
18+ DBusGreeter.cpp
1819 DBusGreeterList.cpp
1920 Greeter.cpp
2021 plugin.cpp
plugins/LightDM/DBusGreeter.cppnew file+65
@@ -0,0 +1,65 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "DBusGreeter.h"
18+#include "Greeter.h"
19+
20+#include <QDBusMessage>
21+#include <QStringList>
22+
23+DBusGreeter::DBusGreeter(Greeter *greeter, const QDBusConnection &connection, const QString &path)
24+ : QObject(greeter),
25+ m_greeter(greeter),
26+ m_connection(connection),
27+ m_path(path)
28+{
29+ connect(m_greeter, SIGNAL(isActiveChanged()), this, SLOT(isActiveChangedHandler()));
30+}
31+
32+bool DBusGreeter::isActive() const
33+{
34+ return m_greeter->isActive();
35+}
36+
37+void DBusGreeter::ShowGreeter()
38+{
39+ return Q_EMIT m_greeter->showGreeter();
40+}
41+
42+void DBusGreeter::isActiveChangedHandler()
43+{
44+ notifyPropertyChanged("IsActive", isActive());
45+ Q_EMIT isActiveChanged();
46+}
47+
48+// Manually emit a PropertiesChanged signal over DBus, because QtDBus
49+// doesn't do it for us on Q_PROPERTIES, oddly enough.
50+void DBusGreeter::notifyPropertyChanged(const QString& propertyName, const QVariant &value)
51+{
52+ QDBusMessage message;
53+ QVariantMap changedProps;
54+
55+ changedProps.insert(propertyName, value);
56+
57+ message = QDBusMessage::createSignal(m_path,
58+ "org.freedesktop.DBus.Properties",
59+ "PropertiesChanged");
60+ message << "com.canonical.UnityGreeter";
61+ message << changedProps;
62+ message << QStringList();
63+
64+ m_connection.send(message);
65+}
plugins/LightDM/DBusGreeter.hnew file+55
@@ -0,0 +1,55 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef UNITY_DBUSGREETER_H
18+#define UNITY_DBUSGREETER_H
19+
20+#include <QDBusConnection>
21+#include <QObject>
22+
23+class Greeter;
24+class QDBusInterface;
25+
26+/** This is an internal class used to talk with the indicators.
27+ */
28+
29+class DBusGreeter : public QObject
30+{
31+ Q_OBJECT
32+ Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter")
33+
34+ Q_PROPERTY(bool IsActive READ isActive NOTIFY isActiveChanged) // since 14.10
35+
36+public:
37+ explicit DBusGreeter(Greeter *greeter, const QDBusConnection &connection, const QString &path);
38+
39+ bool isActive() const;
40+ Q_SCRIPTABLE void ShowGreeter(); // temporary, until we split the greeter again
41+
42+Q_SIGNALS:
43+ void isActiveChanged();
44+
45+private Q_SLOTS:
46+ void isActiveChangedHandler();
47+ void notifyPropertyChanged(const QString &propertyName, const QVariant &value);
48+
49+private:
50+ Greeter *m_greeter;
51+ QDBusConnection m_connection;
52+ QString m_path;
53+};
54+
55+#endif
plugins/LightDM/Greeter.cpp+17
@@ -25,6 +25,7 @@ public:
2525 explicit GreeterPrivate(Greeter *parent);
2626
2727 QLightDM::Greeter *m_greeter;
28+ bool m_active;
2829 bool wasPrompted;
2930 bool promptless;
3031
@@ -38,6 +39,7 @@ private:
3839
3940GreeterPrivate::GreeterPrivate(Greeter* parent)
4041 : m_greeter(new QLightDM::Greeter(parent)),
42+ m_active(false),
4143 wasPrompted(false),
4244 promptless(false),
4345 q_ptr(parent)
@@ -60,6 +62,21 @@ Greeter::Greeter(QObject* parent)
6062 d->m_greeter->connectSync();
6163}
6264
65+bool Greeter::isActive() const
66+{
67+ Q_D(const Greeter);
68+ return d->m_active;
69+}
70+
71+void Greeter::setIsActive(bool active)
72+{
73+ Q_D(Greeter);
74+ if (d->m_active != active) {
75+ d->m_active = active;
76+ Q_EMIT isActiveChanged();
77+ }
78+}
79+
6380bool Greeter::isAuthenticated() const
6481{
6582 Q_D(const Greeter);
plugins/LightDM/Greeter.h+5
@@ -34,6 +34,7 @@ class Greeter : public QObject
3434{
3535 Q_OBJECT
3636
37+ Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
3738 Q_PROPERTY(bool authenticated READ isAuthenticated)
3839 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
3940 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
@@ -41,6 +42,7 @@ class Greeter : public QObject
4142public:
4243 explicit Greeter(QObject* parent=0);
4344
45+ bool isActive() const;
4446 bool isAuthenticated() const;
4547 QString authenticationUser() const;
4648 bool promptless() const;
@@ -49,13 +51,16 @@ public Q_SLOTS:
4951 void authenticate(const QString &username=QString());
5052 void respond(const QString &response);
5153 bool startSessionSync(const QString &session=QString());
54+ void setIsActive(bool isActive);
5255
5356Q_SIGNALS:
5457 void showMessage(const QString &text, bool isError);
5558 void showPrompt(const QString &text, bool isSecret);
5659 void authenticationComplete();
5760 void authenticationUserChanged(const QString &user);
61+ void isActiveChanged();
5862 void promptlessChanged();
63+ void showGreeter();
5964
6065 // This signal is emitted by external agents like indicators, and the UI
6166 // should switch to this user if possible.
plugins/LightDM/LightDM.qmltypesnew file+241
@@ -0,0 +1,241 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable LightDM 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "Greeter"
12+ prototype: "QObject"
13+ exports: ["LightDM/Greeter 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Property { name: "authenticated"; type: "bool"; isReadonly: true }
18+ Property { name: "authenticationUser"; type: "string"; isReadonly: true }
19+ Property { name: "promptless"; type: "bool"; isReadonly: true }
20+ Signal {
21+ name: "showMessage"
22+ Parameter { name: "text"; type: "string" }
23+ Parameter { name: "isError"; type: "bool" }
24+ }
25+ Signal {
26+ name: "showPrompt"
27+ Parameter { name: "text"; type: "string" }
28+ Parameter { name: "isSecret"; type: "bool" }
29+ }
30+ Signal { name: "authenticationComplete" }
31+ Signal {
32+ name: "authenticationUserChanged"
33+ Parameter { name: "user"; type: "string" }
34+ }
35+ Signal {
36+ name: "requestAuthenticationUser"
37+ Parameter { name: "user"; type: "string" }
38+ }
39+ Method {
40+ name: "authenticate"
41+ Parameter { name: "username"; type: "string" }
42+ }
43+ Method { name: "authenticate" }
44+ Method {
45+ name: "respond"
46+ Parameter { name: "response"; type: "string" }
47+ }
48+ Method {
49+ name: "startSessionSync"
50+ type: "bool"
51+ Parameter { name: "session"; type: "string" }
52+ }
53+ Method { name: "startSessionSync"; type: "bool" }
54+ }
55+ Component {
56+ name: "QAbstractProxyModel"
57+ prototype: "QAbstractItemModel"
58+ Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
59+ }
60+ Component {
61+ name: "QLightDM::UsersModel"
62+ prototype: "QAbstractListModel"
63+ exports: ["LightDM/UserRoles 0.1"]
64+ isCreatable: false
65+ exportMetaObjectRevisions: [0]
66+ Enum {
67+ name: "UserModelRoles"
68+ values: {
69+ "NameRole": 256,
70+ "RealNameRole": 257,
71+ "LoggedInRole": 258,
72+ "BackgroundRole": 259,
73+ "SessionRole": 260,
74+ "HasMessagesRole": 261,
75+ "ImagePathRole": 262,
76+ "BackgroundPathRole": 263
77+ }
78+ }
79+ }
80+ Component {
81+ name: "QSortFilterProxyModel"
82+ prototype: "QAbstractProxyModel"
83+ Property { name: "filterRegExp"; type: "QRegExp" }
84+ Property { name: "filterKeyColumn"; type: "int" }
85+ Property { name: "dynamicSortFilter"; type: "bool" }
86+ Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
87+ Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
88+ Property { name: "isSortLocaleAware"; type: "bool" }
89+ Property { name: "sortRole"; type: "int" }
90+ Property { name: "filterRole"; type: "int" }
91+ Method {
92+ name: "setFilterRegExp"
93+ Parameter { name: "pattern"; type: "string" }
94+ }
95+ Method {
96+ name: "setFilterWildcard"
97+ Parameter { name: "pattern"; type: "string" }
98+ }
99+ Method {
100+ name: "setFilterFixedString"
101+ Parameter { name: "pattern"; type: "string" }
102+ }
103+ Method { name: "clear" }
104+ Method { name: "invalidate" }
105+ }
106+ Component {
107+ name: "QSortFilterProxyModelQML"
108+ prototype: "QSortFilterProxyModel"
109+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
110+ Property { name: "totalCount"; type: "int"; isReadonly: true }
111+ Property { name: "count"; type: "int"; isReadonly: true }
112+ Property { name: "invertMatch"; type: "bool" }
113+ Signal {
114+ name: "invertMatchChanged"
115+ Parameter { type: "bool" }
116+ }
117+ Method {
118+ name: "get"
119+ type: "QVariantMap"
120+ Parameter { name: "row"; type: "int" }
121+ }
122+ Method {
123+ name: "data"
124+ type: "QVariant"
125+ Parameter { name: "row"; type: "int" }
126+ Parameter { name: "role"; type: "int" }
127+ }
128+ Method { name: "count"; type: "int" }
129+ Method {
130+ name: "findFirst"
131+ type: "int"
132+ Parameter { name: "role"; type: "int" }
133+ Parameter { name: "value"; type: "QVariant" }
134+ }
135+ Method {
136+ name: "mapRowToSource"
137+ type: "int"
138+ Parameter { name: "row"; type: "int" }
139+ }
140+ Method {
141+ name: "mapFromSource"
142+ type: "int"
143+ Parameter { name: "row"; type: "int" }
144+ }
145+ Method {
146+ name: "mapToSource"
147+ type: "int"
148+ Parameter { name: "row"; type: "int" }
149+ }
150+ }
151+ Component {
152+ name: "UserMetricsOutput::ColorTheme"
153+ prototype: "QObject"
154+ Property { name: "start"; type: "QColor"; isReadonly: true }
155+ Property { name: "main"; type: "QColor"; isReadonly: true }
156+ Property { name: "end"; type: "QColor"; isReadonly: true }
157+ Signal {
158+ name: "startChanged"
159+ Parameter { name: "color"; type: "QColor" }
160+ }
161+ Signal {
162+ name: "mainChanged"
163+ Parameter { name: "color"; type: "QColor" }
164+ }
165+ Signal {
166+ name: "endChanged"
167+ Parameter { name: "color"; type: "QColor" }
168+ }
169+ }
170+ Component {
171+ name: "UserMetricsOutput::UserMetrics"
172+ prototype: "QObject"
173+ exports: ["LightDM/Infographic 0.1"]
174+ isCreatable: false
175+ isSingleton: true
176+ exportMetaObjectRevisions: [0]
177+ Property { name: "label"; type: "string"; isReadonly: true }
178+ Property { name: "username"; type: "string" }
179+ Property {
180+ name: "firstColor"
181+ type: "UserMetricsOutput::ColorTheme"
182+ isReadonly: true
183+ isPointer: true
184+ }
185+ Property {
186+ name: "secondColor"
187+ type: "UserMetricsOutput::ColorTheme"
188+ isReadonly: true
189+ isPointer: true
190+ }
191+ Property { name: "firstMonth"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
192+ Property { name: "secondMonth"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
193+ Property { name: "currentDay"; type: "int"; isReadonly: true }
194+ Signal {
195+ name: "labelChanged"
196+ Parameter { name: "label"; type: "string" }
197+ }
198+ Signal {
199+ name: "usernameChanged"
200+ Parameter { name: "username"; type: "string" }
201+ }
202+ Signal {
203+ name: "firstColorChanged"
204+ Parameter { name: "color"; type: "ColorTheme"; isPointer: true }
205+ }
206+ Signal {
207+ name: "firstMonthChanged"
208+ Parameter { name: "firstMonth"; type: "QAbstractItemModel"; isPointer: true }
209+ }
210+ Signal {
211+ name: "currentDayChanged"
212+ Parameter { name: "currentDay"; type: "int" }
213+ }
214+ Signal {
215+ name: "secondColorChanged"
216+ Parameter { name: "color"; type: "ColorTheme"; isPointer: true }
217+ }
218+ Signal {
219+ name: "secondMonthChanged"
220+ Parameter { name: "secondMonth"; type: "QAbstractItemModel"; isPointer: true }
221+ }
222+ Signal { name: "nextDataSource" }
223+ Signal { name: "readyForDataChange" }
224+ Signal { name: "dataAboutToAppear" }
225+ Signal { name: "dataAppeared" }
226+ Signal { name: "dataAboutToChange" }
227+ Signal { name: "dataChanged" }
228+ Signal { name: "dataAboutToDisappear" }
229+ Signal { name: "dataDisappeared" }
230+ Method { name: "nextDataSourceSlot" }
231+ Method { name: "readyForDataChangeSlot" }
232+ }
233+ Component {
234+ name: "UsersModel"
235+ prototype: "QSortFilterProxyModelQML"
236+ exports: ["LightDM/Users 0.1"]
237+ isCreatable: false
238+ isSingleton: true
239+ exportMetaObjectRevisions: [0]
240+ }
241+}
plugins/LightDM/plugin.cpp+3
@@ -18,6 +18,7 @@
1818 */
1919
2020#include "plugin.h"
21+#include "DBusGreeter.h"
2122#include "DBusGreeterList.h"
2223#include "Greeter.h"
2324#include "UsersModel.h"
@@ -39,6 +40,8 @@ static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
3940
4041 Greeter *greeter = new Greeter();
4142 QDBusConnection connection = QDBusConnection::sessionBus();
43+ DBusGreeter *root = new DBusGreeter(greeter, connection, "/");
44+ connection.registerObject("/", root, QDBusConnection::ExportScriptableContents);
4245 DBusGreeterList *list = new DBusGreeterList(greeter, connection, GREETER_LIST_DBUS_PATH);
4346 connection.registerObject(GREETER_LIST_DBUS_PATH, list, QDBusConnection::ExportScriptableContents);
4447 connection.registerService(GREETER_DBUS_SERVICE);
plugins/Lights/CMakeLists.txtnew file+18
@@ -0,0 +1,18 @@
1+include(FindPkgConfig)
2+
3+pkg_check_modules(ANDROID_HEADERS REQUIRED android-headers)
4+pkg_check_modules(ANDROID_HARDWARE REQUIRED libhardware)
5+
6+include_directories(
7+ ${ANDROID_HEADERS_INCLUDE_DIRS}
8+)
9+
10+add_library(Lights-qml MODULE
11+ plugin.cpp
12+ Lights.cpp
13+ )
14+
15+qt5_use_modules(Lights-qml Qml Gui)
16+target_link_libraries(Lights-qml ${ANDROID_HARDWARE_LIBRARIES})
17+
18+add_unity8_plugin(Lights 0.1 Lights TARGETS Lights-qml)
plugins/Lights/Lights.cppnew file+182
@@ -0,0 +1,182 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Renato Araujo Oliveira Filho <renato.filho@canonical.com>
17+ */
18+
19+#include "Lights.h"
20+#include <QtCore/QDebug>
21+
22+extern "C" {
23+#include <hardware/hardware.h>
24+#include <hardware/lights.h>
25+#include <string.h>
26+}
27+
28+Lights::Lights(QObject* parent)
29+ : QObject(parent),
30+ m_lightDevice(0),
31+ m_color("blue"),
32+ m_state(Lights::Off),
33+ m_onMs(1000),
34+ m_offMs(3000)
35+{
36+}
37+
38+Lights::~Lights()
39+{
40+ if (m_lightDevice) {
41+ hw_device_t* device = (hw_device_t*) m_lightDevice;
42+ device->close(device);
43+ }
44+}
45+
46+void Lights::setState(Lights::State newState)
47+{
48+ if (m_state != newState) {
49+ if (newState == Lights::On) {
50+ turnOn();
51+ } else {
52+ turnOff();
53+ }
54+ }
55+}
56+
57+Lights::State Lights::state() const
58+{
59+ return m_state;
60+}
61+
62+void Lights::setColor(const QColor &color)
63+{
64+ if (m_color != color) {
65+ m_color = color;
66+ Q_EMIT colorChanged(m_color);
67+ // FIXME: update the collor if the light is already on
68+ }
69+}
70+
71+QColor Lights::color() const
72+{
73+ return m_color;
74+}
75+
76+int Lights::onMillisec() const
77+{
78+ return m_onMs;
79+}
80+
81+void Lights::setOnMillisec(int onMs)
82+{
83+ if (m_onMs != onMs) {
84+ m_onMs = onMs;
85+ Q_EMIT onMillisecChanged(m_onMs);
86+ // FIXME: update the property if the light is already on
87+ }
88+}
89+
90+int Lights::offMillisec() const
91+{
92+ return m_offMs;
93+}
94+
95+void Lights::setOffMillisec(int offMs)
96+{
97+ if (m_offMs != offMs) {
98+ m_offMs = offMs;
99+ Q_EMIT offMillisecChanged(m_offMs);
100+ // FIXME: update the property if the light is already on
101+ }
102+}
103+
104+bool Lights::init()
105+{
106+ if (m_lightDevice) {
107+ return true;
108+ }
109+
110+ int err;
111+ hw_module_t* module;
112+
113+ err = hw_get_module(LIGHTS_HARDWARE_MODULE_ID, (hw_module_t const**)&module);
114+ if (err == 0) {
115+ hw_device_t* device;
116+ err = module->methods->open(module, LIGHT_ID_NOTIFICATIONS, &device);
117+ if (err == 0) {
118+ m_lightDevice = (light_device_t*)device;
119+ return true;
120+ } else {
121+ qWarning() << "Failed to access notification lights";
122+ }
123+ } else {
124+ qWarning() << "Failed to initialize lights hardware.";
125+ }
126+ return false;
127+}
128+
129+void Lights::turnOn()
130+{
131+ if (!init()) {
132+ qWarning() << "No lights device";
133+ return;
134+ }
135+
136+ if (m_state == Lights::On) {
137+ return;
138+ }
139+
140+ // pulse
141+ light_state_t state;
142+ memset(&state, 0, sizeof(light_state_t));
143+ state.color = m_color.rgba();
144+ state.flashMode = LIGHT_FLASH_TIMED;
145+ state.flashOnMS = m_onMs;
146+ state.flashOffMS = m_offMs;
147+ state.brightnessMode = BRIGHTNESS_MODE_USER;
148+
149+ if (m_lightDevice->set_light(m_lightDevice, &state) != 0) {
150+ qWarning() << "Failed to turn the light off";
151+ } else {
152+ m_state = Lights::On;
153+ Q_EMIT stateChanged(m_state);
154+ }
155+}
156+
157+void Lights::turnOff()
158+{
159+ if (!init()) {
160+ qWarning() << "No lights device";
161+ return;
162+ }
163+
164+ if (m_state == Lights::Off) {
165+ return;
166+ }
167+
168+ light_state_t state;
169+ memset(&state, 0, sizeof(light_state_t));
170+ state.color = 0x00000000;
171+ state.flashMode = LIGHT_FLASH_NONE;
172+ state.flashOnMS = 0;
173+ state.flashOffMS = 0;
174+ state.brightnessMode = 0;
175+
176+ if (m_lightDevice->set_light(m_lightDevice, &state) != 0) {
177+ qWarning() << "Failed to turn the light off";
178+ } else {
179+ m_state = Lights::Off;
180+ Q_EMIT stateChanged(m_state);
181+ }
182+}
plugins/Lights/Lights.hnew file+75
@@ -0,0 +1,75 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Renato Araujo Oliveira Filho <renato.filho@canonical.com>
17+ */
18+
19+#ifndef UNITY_LIGHTS_H
20+#define UNITY_LIGHTS_H
21+
22+#include <QtCore/QObject>
23+#include <QtGui/QColor>
24+
25+struct light_device_t;
26+
27+class Lights: public QObject
28+{
29+ Q_OBJECT
30+ Q_ENUMS(State)
31+ Q_PROPERTY(State state READ state WRITE setState NOTIFY stateChanged)
32+ Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
33+ Q_PROPERTY(int onMillisec READ onMillisec WRITE setOnMillisec NOTIFY onMillisecChanged)
34+ Q_PROPERTY(int offMillisec READ offMillisec WRITE setOffMillisec NOTIFY offMillisecChanged)
35+
36+public:
37+ enum State {
38+ Off,
39+ On,
40+ };
41+
42+ explicit Lights(QObject *parent = 0);
43+ ~Lights();
44+
45+ void setState(State newState);
46+ State state() const;
47+
48+ void setColor(const QColor &color);
49+ QColor color() const;
50+
51+ int onMillisec() const;
52+ void setOnMillisec(int onMs);
53+
54+ int offMillisec() const;
55+ void setOffMillisec(int offMs);
56+
57+Q_SIGNALS:
58+ void stateChanged(State newState);
59+ void colorChanged(const QColor &color);
60+ void onMillisecChanged(int onMs);
61+ void offMillisecChanged(int offMs);
62+
63+private:
64+ light_device_t* m_lightDevice;
65+ QColor m_color;
66+ State m_state;
67+ int m_onMs;
68+ int m_offMs;
69+
70+ bool init();
71+ void turnOff();
72+ void turnOn();
73+};
74+
75+#endif
plugins/Lights/Lights.qmltypesnew file+45
@@ -0,0 +1,45 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Lights 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "Lights"
12+ prototype: "QObject"
13+ exports: ["Lights/Lights 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Enum {
18+ name: "State"
19+ values: {
20+ "Off": 0,
21+ "On": 1
22+ }
23+ }
24+ Property { name: "state"; type: "State" }
25+ Property { name: "color"; type: "QColor" }
26+ Property { name: "onMillisec"; type: "int" }
27+ Property { name: "offMillisec"; type: "int" }
28+ Signal {
29+ name: "stateChanged"
30+ Parameter { name: "newState"; type: "State" }
31+ }
32+ Signal {
33+ name: "colorChanged"
34+ Parameter { name: "color"; type: "QColor" }
35+ }
36+ Signal {
37+ name: "onMillisecChanged"
38+ Parameter { name: "onMs"; type: "int" }
39+ }
40+ Signal {
41+ name: "offMillisecChanged"
42+ Parameter { name: "offMs"; type: "int" }
43+ }
44+ }
45+}
plugins/Lights/plugin.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Renato Araujo Oliveira Filho <renato.filho@canonical.com>
17+ */
18+
19+#include "plugin.h"
20+#include "Lights.h"
21+
22+#include <QtQml/qqml.h>
23+
24+static QObject *lights_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25+{
26+ Q_UNUSED(engine)
27+ Q_UNUSED(scriptEngine)
28+ return new Lights();
29+}
30+
31+void LightsPlugin::registerTypes(const char *uri)
32+{
33+ Q_ASSERT(uri == QLatin1String("Lights"));
34+ qmlRegisterSingletonType<Lights>(uri, 0, 1, "Lights", lights_provider);
35+}
plugins/Lights/plugin.hnew file+34
@@ -0,0 +1,34 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Renato Araujo Oliveira Filho <renato.filho@canonical.com>
17+ */
18+
19+#ifndef LIGHTS_PLUGIN_H
20+#define LIGHTS_PLUGIN_H
21+
22+#include <QtQml/QQmlEngine>
23+#include <QtQml/QQmlExtensionPlugin>
24+
25+class LightsPlugin : public QQmlExtensionPlugin
26+{
27+ Q_OBJECT
28+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
29+
30+public:
31+ void registerTypes(const char *uri);
32+};
33+
34+#endif
plugins/Lights/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module Lights
2+plugin Lights-qml
3+typeinfo Lights.qmltypes
plugins/Powerd/Powerd.qmltypesnew file+39
@@ -0,0 +1,39 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Powerd 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "Powerd"
12+ prototype: "QObject"
13+ exports: ["Powerd/Powerd 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Enum {
18+ name: "DisplayStateChangeReason"
19+ values: {
20+ "Unknown": 0,
21+ "Inactivity": 1,
22+ "PowerKey": 2,
23+ "Proximity": 3
24+ }
25+ }
26+ Enum {
27+ name: "Status"
28+ values: {
29+ "Off": 0,
30+ "On": 1
31+ }
32+ }
33+ Signal {
34+ name: "displayPowerStateChange"
35+ Parameter { name: "status"; type: "int" }
36+ Parameter { name: "reason"; type: "int" }
37+ }
38+ }
39+}
plugins/SessionBroadcast/SessionBroadcast.qmltypesnew file+19
@@ -0,0 +1,19 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable SessionBroadcast 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "SessionBroadcast"
12+ prototype: "QObject"
13+ exports: ["SessionBroadcast/SessionBroadcast 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Signal { name: "showHome" }
18+ }
19+}
plugins/Ubuntu/CMakeLists.txt+1
@@ -1,2 +1,3 @@
11add_subdirectory(Gestures)
22add_subdirectory(DownloadDaemonListener)
3+add_subdirectory(Payments)
plugins/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypesnew file+60
@@ -0,0 +1,60 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Ubuntu.DownloadDaemonListener 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "DownloadTracker"
12+ prototype: "QObject"
13+ exports: ["Ubuntu.DownloadDaemonListener/DownloadTracker 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Property { name: "service"; type: "string" }
16+ Property { name: "dbusPath"; type: "string" }
17+ Property { name: "serviceReady"; type: "bool"; isReadonly: true }
18+ Signal {
19+ name: "serviceChanged"
20+ Parameter { name: "service"; type: "string" }
21+ }
22+ Signal {
23+ name: "dbusPathChanged"
24+ Parameter { name: "dbusPath"; type: "string" }
25+ }
26+ Signal {
27+ name: "serviceReadyChanged"
28+ Parameter { name: "serviceReady"; type: "bool" }
29+ }
30+ Signal {
31+ name: "canceled"
32+ Parameter { name: "success"; type: "bool" }
33+ }
34+ Signal {
35+ name: "error"
36+ Parameter { name: "error"; type: "string" }
37+ }
38+ Signal {
39+ name: "finished"
40+ Parameter { name: "path"; type: "string" }
41+ }
42+ Signal {
43+ name: "paused"
44+ Parameter { name: "success"; type: "bool" }
45+ }
46+ Signal {
47+ name: "progress"
48+ Parameter { name: "received"; type: "qulonglong" }
49+ Parameter { name: "total"; type: "qulonglong" }
50+ }
51+ Signal {
52+ name: "resumed"
53+ Parameter { name: "success"; type: "bool" }
54+ }
55+ Signal {
56+ name: "started"
57+ Parameter { name: "success"; type: "bool" }
58+ }
59+ }
60+}
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+1
@@ -378,6 +378,7 @@ void DirectionalDragArea::touchEvent_undecided(QTouchEvent *event)
378378 // touch has ended before recognition concluded
379379 DDA_DEBUG("Touch has ended before recognition concluded");
380380 setStatus(WaitingForTouch);
381+ Q_EMIT tapped();
381382 return;
382383 }
383384
plugins/Ubuntu/Gestures/DirectionalDragArea.h+1
@@ -212,6 +212,7 @@ Q_SIGNALS:
212212 void touchYChanged(qreal value);
213213 void touchSceneXChanged(qreal value);
214214 void touchSceneYChanged(qreal value);
215+ void tapped();
215216
216217protected:
217218 virtual void touchEvent(QTouchEvent *event);
plugins/Ubuntu/Gestures/Gestures.qmltypesnew file+154
@@ -0,0 +1,154 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Ubuntu.Gestures 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "AxisVelocityCalculator"
12+ prototype: "QObject"
13+ exports: ["Ubuntu.Gestures/AxisVelocityCalculator 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Property { name: "trackedPosition"; type: "double" }
16+ Signal {
17+ name: "trackedPositionChanged"
18+ Parameter { name: "value"; type: "double" }
19+ }
20+ Method { name: "calculate"; type: "double" }
21+ Method { name: "reset" }
22+ }
23+ Component {
24+ name: "Direction"
25+ prototype: "QObject"
26+ exports: ["Ubuntu.Gestures/Direction 0.1"]
27+ isCreatable: false
28+ isSingleton: true
29+ exportMetaObjectRevisions: [0]
30+ Enum {
31+ name: "Type"
32+ values: {
33+ "Rightwards": 0,
34+ "Leftwards": 1,
35+ "Downwards": 2,
36+ "Upwards": 3
37+ }
38+ }
39+ Method {
40+ name: "isHorizontal"
41+ type: "bool"
42+ Parameter { name: "type"; type: "Direction::Type" }
43+ }
44+ Method {
45+ name: "isVertical"
46+ type: "bool"
47+ Parameter { name: "type"; type: "Direction::Type" }
48+ }
49+ Method {
50+ name: "isPositive"
51+ type: "bool"
52+ Parameter { name: "type"; type: "Direction::Type" }
53+ }
54+ }
55+ Component {
56+ name: "DirectionalDragArea"
57+ defaultProperty: "data"
58+ prototype: "QQuickItem"
59+ exports: ["Ubuntu.Gestures/DirectionalDragArea 0.1"]
60+ exportMetaObjectRevisions: [0]
61+ Enum {
62+ name: "Status"
63+ values: {
64+ "WaitingForTouch": 0,
65+ "Undecided": 1,
66+ "Recognized": 2
67+ }
68+ }
69+ Property { name: "direction"; type: "Direction::Type" }
70+ Property { name: "distance"; type: "double"; isReadonly: true }
71+ Property { name: "sceneDistance"; type: "double"; isReadonly: true }
72+ Property { name: "touchX"; type: "double"; isReadonly: true }
73+ Property { name: "touchY"; type: "double"; isReadonly: true }
74+ Property { name: "touchSceneX"; type: "double"; isReadonly: true }
75+ Property { name: "touchSceneY"; type: "double"; isReadonly: true }
76+ Property { name: "status"; type: "Status"; isReadonly: true }
77+ Property { name: "dragging"; type: "bool"; isReadonly: true }
78+ Property { name: "maxDeviation"; type: "double" }
79+ Property { name: "wideningAngle"; type: "double" }
80+ Property { name: "distanceThreshold"; type: "double" }
81+ Property { name: "minSpeed"; type: "double" }
82+ Property { name: "maxSilenceTime"; type: "int" }
83+ Property { name: "compositionTime"; type: "int" }
84+ Signal {
85+ name: "directionChanged"
86+ Parameter { name: "direction"; type: "Direction::Type" }
87+ }
88+ Signal {
89+ name: "statusChanged"
90+ Parameter { name: "value"; type: "Status" }
91+ }
92+ Signal {
93+ name: "draggingChanged"
94+ Parameter { name: "value"; type: "bool" }
95+ }
96+ Signal {
97+ name: "distanceChanged"
98+ Parameter { name: "value"; type: "double" }
99+ }
100+ Signal {
101+ name: "sceneDistanceChanged"
102+ Parameter { name: "value"; type: "double" }
103+ }
104+ Signal {
105+ name: "maxDeviationChanged"
106+ Parameter { name: "value"; type: "double" }
107+ }
108+ Signal {
109+ name: "wideningAngleChanged"
110+ Parameter { name: "value"; type: "double" }
111+ }
112+ Signal {
113+ name: "distanceThresholdChanged"
114+ Parameter { name: "value"; type: "double" }
115+ }
116+ Signal {
117+ name: "minSpeedChanged"
118+ Parameter { name: "value"; type: "double" }
119+ }
120+ Signal {
121+ name: "maxSilenceTimeChanged"
122+ Parameter { name: "value"; type: "int" }
123+ }
124+ Signal {
125+ name: "compositionTimeChanged"
126+ Parameter { name: "value"; type: "int" }
127+ }
128+ Signal {
129+ name: "touchXChanged"
130+ Parameter { name: "value"; type: "double" }
131+ }
132+ Signal {
133+ name: "touchYChanged"
134+ Parameter { name: "value"; type: "double" }
135+ }
136+ Signal {
137+ name: "touchSceneXChanged"
138+ Parameter { name: "value"; type: "double" }
139+ }
140+ Signal {
141+ name: "touchSceneYChanged"
142+ Parameter { name: "value"; type: "double" }
143+ }
144+ Signal { name: "tapped" }
145+ }
146+ Component {
147+ name: "PressedOutsideNotifier"
148+ defaultProperty: "data"
149+ prototype: "QQuickItem"
150+ exports: ["Ubuntu.Gestures/PressedOutsideNotifier 0.1"]
151+ exportMetaObjectRevisions: [0]
152+ Signal { name: "pressedOutside" }
153+ }
154+}
plugins/Ubuntu/Payments/CMakeLists.txtnew file+20
@@ -0,0 +1,20 @@
1+include_directories(
2+ ${CMAKE_CURRENT_SOURCE_DIR}
3+ ${CMAKE_CURRENT_BINARY_DIR}
4+)
5+
6+set(PAYMENTS_SOURCES
7+ plugin.cpp
8+ Payments.cpp
9+)
10+
11+add_library(Payments MODULE ${PAYMENTS_SOURCES})
12+
13+qt5_use_modules(Payments Qml Quick DBus Core)
14+
15+add_unity8_plugin(Ubuntu.Payments 0.1 Ubuntu/Payments TARGETS Payments)
16+
17+pkg_check_modules(LIBPAY REQUIRED pay-2)
18+add_definitions(${LIBPAY_CFLAGS} ${LIBPAY_CFLAGS_OTHER})
19+
20+target_link_libraries(Payments ${LIBPAY_LDFLAGS})
plugins/Ubuntu/Payments/Payments.cppnew file+118
@@ -0,0 +1,118 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "Payments.h"
18+
19+#include <QLocale>
20+
21+#include <libpay/pay-package.h>
22+
23+
24+// The observer callback for the package we are watching.
25+static void observer(PayPackage* /* package */, const char* itemid, PayPackageItemStatus status, void* user_data) {
26+ // This function is called in libpay's thread, so be careful what you call
27+ // Emitting signals should be fine as long as they use Queued or Auto
28+ // connections (the default)
29+ // http://qt-project.org/doc/qt-5/threads-qobject.html#signals-and-slots-across-threads
30+
31+ Payments *self = static_cast<Payments*>(user_data);
32+
33+ // If the item ID is different, ignore it.
34+ if (itemid != self->storeItemId()) {
35+ return;
36+ }
37+
38+ // FIXME: No error reporting from libpay, but we need to show some
39+ // types of errors to the user. https://launchpad.net/bugs/1333403
40+ switch (status) {
41+ case PAY_PACKAGE_ITEM_STATUS_PURCHASED:
42+ Q_EMIT self->purchaseCompleted();
43+ break;
44+ default:
45+ break;
46+ }
47+}
48+
49+Payments::Payments(QObject *parent)
50+ : QObject(parent)
51+{
52+ m_package = pay_package_new("click-scope");
53+ pay_package_item_observer_install(m_package, observer, this);
54+}
55+
56+Payments::~Payments()
57+{
58+ pay_package_item_observer_uninstall(m_package, observer, this);
59+ pay_package_delete(m_package);
60+}
61+
62+QString Payments::currency() const
63+{
64+ return m_currency;
65+}
66+
67+double Payments::price() const
68+{
69+ return m_price;
70+}
71+
72+QString Payments::storeItemId() const
73+{
74+ return m_store_item_id;
75+}
76+
77+QString Payments::formattedPrice() const
78+{
79+ QLocale locale;
80+ return locale.toCurrencyString(m_price, m_currency);
81+}
82+
83+void Payments::setCurrency(const QString &currency)
84+{
85+ if(m_currency != currency) {
86+ m_currency = currency;
87+ Q_EMIT currencyChanged(currency);
88+ Q_EMIT formattedPriceChanged(formattedPrice());
89+ }
90+}
91+
92+void Payments::setPrice(const double price)
93+{
94+ if(m_price != price) {
95+ m_price = price;
96+ Q_EMIT priceChanged(price);
97+ Q_EMIT formattedPriceChanged(formattedPrice());
98+ }
99+}
100+
101+void Payments::setStoreItemId(const QString &store_item_id)
102+{
103+ if (m_store_item_id != store_item_id) {
104+ m_store_item_id = store_item_id;
105+ Q_EMIT storeItemIdChanged(m_store_item_id);
106+ }
107+
108+ if (m_store_item_id.isEmpty()) {
109+ return;
110+ }
111+
112+ pay_package_item_start_verification(m_package, m_store_item_id.toLocal8Bit().data());
113+}
114+
115+void Payments::start()
116+{
117+ pay_package_item_start_purchase(m_package, m_store_item_id.toLocal8Bit().data());
118+}
plugins/Ubuntu/Payments/Payments.hnew file+65
@@ -0,0 +1,65 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef PAYMENTS_H
18+#define PAYMENTS_H
19+
20+#include <QObject>
21+
22+#include <libpay/pay-package.h>
23+
24+
25+class Payments : public QObject
26+{
27+ Q_OBJECT
28+ Q_DISABLE_COPY(Payments)
29+ Q_PROPERTY(QString currency READ currency WRITE setCurrency NOTIFY currencyChanged)
30+ Q_PROPERTY(double price READ price WRITE setPrice NOTIFY priceChanged)
31+ Q_PROPERTY(QString storeItemId READ storeItemId WRITE setStoreItemId NOTIFY storeItemIdChanged)
32+ Q_PROPERTY(QString formattedPrice READ formattedPrice NOTIFY formattedPriceChanged)
33+
34+public:
35+ explicit Payments(QObject *parent = 0);
36+ virtual ~Payments();
37+
38+ QString currency() const;
39+ double price() const;
40+ QString storeItemId() const;
41+ QString formattedPrice() const;
42+
43+ void setCurrency(const QString& currency);
44+ void setPrice(const double price);
45+ void setStoreItemId(const QString& store_item_id);
46+ Q_INVOKABLE void start();
47+
48+Q_SIGNALS:
49+ void currencyChanged(const QString& currency);
50+ void priceChanged(const double price);
51+ void storeItemIdChanged(const QString &store_item_id);
52+ void formattedPriceChanged(const QString &formatted_price);
53+
54+ void purchaseError(const QString &error);
55+ void purchaseCompleted();
56+
57+private:
58+ QString m_currency;
59+ double m_price;
60+ QString m_store_item_id;
61+
62+ PayPackage *m_package;
63+};
64+
65+#endif // PAYMENTS_H
plugins/Ubuntu/Payments/Payments.qmltypesnew file+42
@@ -0,0 +1,42 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Ubuntu.Payments 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "Payments"
12+ prototype: "QObject"
13+ exports: ["Ubuntu.Payments/Payments 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Property { name: "currency"; type: "string" }
16+ Property { name: "price"; type: "double" }
17+ Property { name: "storeItemId"; type: "string" }
18+ Property { name: "formattedPrice"; type: "string"; isReadonly: true }
19+ Signal {
20+ name: "currencyChanged"
21+ Parameter { name: "currency"; type: "string" }
22+ }
23+ Signal {
24+ name: "priceChanged"
25+ Parameter { name: "price"; type: "double" }
26+ }
27+ Signal {
28+ name: "storeItemIdChanged"
29+ Parameter { name: "store_item_id"; type: "string" }
30+ }
31+ Signal {
32+ name: "formattedPriceChanged"
33+ Parameter { name: "formatted_price"; type: "string" }
34+ }
35+ Signal {
36+ name: "purchaseError"
37+ Parameter { name: "error"; type: "string" }
38+ }
39+ Signal { name: "purchaseCompleted" }
40+ Method { name: "start" }
41+ }
42+}
qml/Stages/SidestageHandle.qml → plugins/Ubuntu/Payments/plugin.cpprenamed+11−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -14,9 +14,15 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
17+#include "plugin.h"
18+#include "Payments.h"
1919
20−BorderImage {
21− source: "graphics/sidestage_handle.sci"
20+#include <QtQml>
21+
22+
23+void BackendPlugin::registerTypes(const char *uri)
24+{
25+ Q_ASSERT(uri == QLatin1String("Ubuntu.Payments"));
26+
27+ qmlRegisterType<Payments>(uri, 0, 1, "Payments");
2228}
plugins/Ubuntu/Payments/plugin.hnew file+31
@@ -0,0 +1,31 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef PAYMENTS_PLUGIN_H
18+#define PAYMENTS_PLUGIN_H
19+
20+#include <QQmlExtensionPlugin>
21+
22+class BackendPlugin : public QQmlExtensionPlugin
23+{
24+ Q_OBJECT
25+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
26+
27+public:
28+ void registerTypes(const char *uri);
29+};
30+
31+#endif // PAYMENTS_PLUGIN_H
plugins/Ubuntu/Payments/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module Ubuntu.Payments
2+plugin Payments
3+typeinfo Payments.qmltypes
plugins/Unity/Indicators/CMakeLists.txt+1−4
@@ -51,7 +51,4 @@ target_link_libraries(IndicatorsQml
5151
5252qt5_use_modules(IndicatorsQml Core Qml Quick)
5353
54−add_unity8_plugin(Unity.Indicators 0.1 Unity/Indicators
55− SEARCH_PATH qml
56− TARGETS IndicatorsQml
57−)
54+add_unity8_plugin(Unity.Indicators 0.1 Unity/Indicators TARGETS IndicatorsQml)
plugins/Unity/Indicators/qml/CachedUnityMenuModel.qml → plugins/Unity/Indicators/CachedUnityMenuModel.qmlrenamed

The content is the same.

plugins/Unity/Indicators/Indicators.qmltypesnew file+278
@@ -0,0 +1,278 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.Indicators 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "ActionState"
12+ prototype: "QObject"
13+ exports: ["Unity.Indicators/ActionState 0.1"]
14+ isCreatable: false
15+ exportMetaObjectRevisions: [0]
16+ Enum {
17+ name: "ActionStates"
18+ values: {
19+ "Label": 0,
20+ "IconSource": 1,
21+ "AccessableName": 2,
22+ "Visible": 3
23+ }
24+ }
25+ }
26+ Component { name: "ActionStateParser"; prototype: "QObject" }
27+ Component {
28+ name: "FlatMenuProxyModelRole"
29+ prototype: "QObject"
30+ exports: ["Unity.Indicators/FlatMenuProxyModelRole 0.1"]
31+ isCreatable: false
32+ exportMetaObjectRevisions: [0]
33+ Enum {
34+ name: "Roles"
35+ values: {
36+ "Action": 1,
37+ "Label": 2,
38+ "Extra": 3,
39+ "Depth": 4,
40+ "hasSection": 5,
41+ "hasSubMenu": 6
42+ }
43+ }
44+ }
45+ Component {
46+ name: "IndicatorsManager"
47+ prototype: "QObject"
48+ exports: ["Unity.Indicators/IndicatorsManager 0.1"]
49+ exportMetaObjectRevisions: [0]
50+ Property { name: "loaded"; type: "bool"; isReadonly: true }
51+ Signal {
52+ name: "loadedChanged"
53+ Parameter { type: "bool" }
54+ }
55+ Signal {
56+ name: "indicatorLoaded"
57+ Parameter { name: "indicator_name"; type: "string" }
58+ }
59+ Signal {
60+ name: "indicatorAboutToBeUnloaded"
61+ Parameter { name: "indicator_name"; type: "string" }
62+ }
63+ Method {
64+ name: "load"
65+ Parameter { name: "profile"; type: "string" }
66+ }
67+ Method { name: "unload" }
68+ }
69+ Component {
70+ name: "IndicatorsModel"
71+ prototype: "QAbstractListModel"
72+ exports: ["Unity.Indicators/IndicatorsModel 0.1"]
73+ exportMetaObjectRevisions: [0]
74+ Property { name: "count"; type: "int"; isReadonly: true }
75+ Signal {
76+ name: "indicatorDataChanged"
77+ Parameter { name: "data"; type: "QVariant" }
78+ }
79+ Method {
80+ name: "load"
81+ Parameter { name: "profile"; type: "string" }
82+ }
83+ Method { name: "unload" }
84+ Method {
85+ name: "data"
86+ type: "QVariant"
87+ Parameter { name: "row"; type: "int" }
88+ Parameter { name: "role"; type: "int" }
89+ }
90+ }
91+ Component {
92+ name: "IndicatorsModelRole"
93+ prototype: "QObject"
94+ exports: ["Unity.Indicators/IndicatorsModelRole 0.1"]
95+ isCreatable: false
96+ exportMetaObjectRevisions: [0]
97+ Enum {
98+ name: "Roles"
99+ values: {
100+ "Identifier": 0,
101+ "Position": 1,
102+ "WidgetSource": 2,
103+ "PageSource": 3,
104+ "IndicatorProperties": 4,
105+ "IsVisible": 5
106+ }
107+ }
108+ }
109+ Component {
110+ name: "MenuContentActivator"
111+ prototype: "QObject"
112+ exports: ["Unity.Indicators/MenuContentActivator 0.1"]
113+ exportMetaObjectRevisions: [0]
114+ Property { name: "baseIndex"; type: "int" }
115+ Property { name: "running"; type: "bool" }
116+ Property { name: "count"; type: "int" }
117+ Property { name: "content"; type: "MenuContentState"; isList: true; isReadonly: true }
118+ Signal {
119+ name: "baseIndexChanged"
120+ Parameter { name: "baseIndex"; type: "int" }
121+ }
122+ Signal {
123+ name: "deltaChanged"
124+ Parameter { name: "delta"; type: "int" }
125+ }
126+ Signal {
127+ name: "runningChanged"
128+ Parameter { name: "running"; type: "bool" }
129+ }
130+ Signal {
131+ name: "countChanged"
132+ Parameter { name: "count"; type: "int" }
133+ }
134+ Method { name: "restart" }
135+ Method { name: "stop" }
136+ Method { name: "clear" }
137+ Method {
138+ name: "isMenuContentActive"
139+ type: "bool"
140+ Parameter { name: "index"; type: "int" }
141+ }
142+ }
143+ Component {
144+ name: "MenuContentState"
145+ prototype: "QObject"
146+ exports: ["Unity.Indicators/MenuContentState 0.1"]
147+ isCreatable: false
148+ exportMetaObjectRevisions: [0]
149+ Property { name: "active"; type: "bool"; isReadonly: true }
150+ }
151+ Component {
152+ name: "ModelPrinter"
153+ prototype: "QObject"
154+ exports: ["Unity.Indicators/ModelPrinter 0.1"]
155+ exportMetaObjectRevisions: [0]
156+ Property { name: "model"; type: "UnityMenuModel"; isPointer: true }
157+ Property { name: "text"; type: "string"; isReadonly: true }
158+ Method { name: "text"; type: "string" }
159+ }
160+ Component {
161+ name: "NetworkActionState"
162+ prototype: "QObject"
163+ exports: ["Unity.Indicators/NetworkActionState 0.1"]
164+ isCreatable: false
165+ exportMetaObjectRevisions: [0]
166+ Enum {
167+ name: "NetworkActionStates"
168+ values: {
169+ "Connection": 1,
170+ "SignalStrength": 2
171+ }
172+ }
173+ }
174+ Component {
175+ name: "NetworkConnection"
176+ prototype: "QObject"
177+ exports: ["Unity.Indicators/NetworkConnection 0.1"]
178+ isCreatable: false
179+ exportMetaObjectRevisions: [0]
180+ Enum {
181+ name: "NetworkConnectionStates"
182+ values: {
183+ "Initial": 0,
184+ "Activating": 1,
185+ "Activated": 2,
186+ "Deactivating": 3
187+ }
188+ }
189+ }
190+ Component {
191+ name: "QAbstractProxyModel"
192+ prototype: "QAbstractItemModel"
193+ Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
194+ }
195+ Component { name: "QIdentityProxyModel"; prototype: "QAbstractProxyModel" }
196+ Component {
197+ name: "RootActionState"
198+ prototype: "ActionStateParser"
199+ exports: ["Unity.Indicators/RootActionState 0.1"]
200+ exportMetaObjectRevisions: [0]
201+ Property { name: "menu"; type: "UnityMenuModel"; isPointer: true }
202+ Property { name: "valid"; type: "bool"; isReadonly: true }
203+ Property { name: "title"; type: "string"; isReadonly: true }
204+ Property { name: "leftLabel"; type: "string"; isReadonly: true }
205+ Property { name: "rightLabel"; type: "string"; isReadonly: true }
206+ Property { name: "icons"; type: "QStringList"; isReadonly: true }
207+ Property { name: "accessibleName"; type: "string"; isReadonly: true }
208+ Property { name: "visible"; type: "bool"; isReadonly: true }
209+ Signal { name: "updated" }
210+ Signal { name: "indexChanged" }
211+ }
212+ Component {
213+ name: "UnityMenuModelCache"
214+ prototype: "QObject"
215+ exports: ["Unity.Indicators/UnityMenuModelCache 0.1"]
216+ isCreatable: false
217+ isSingleton: true
218+ exportMetaObjectRevisions: [0]
219+ Method {
220+ name: "model"
221+ type: "UnityMenuModel*"
222+ Parameter { name: "path"; type: "string" }
223+ }
224+ Method {
225+ name: "registerModel"
226+ Parameter { name: "path"; type: "string" }
227+ Parameter { name: "menuModel"; type: "UnityMenuModel"; isPointer: true }
228+ }
229+ }
230+ Component {
231+ name: "UnityMenuModelStack"
232+ prototype: "QObject"
233+ exports: ["Unity.Indicators/UnityMenuModelStack 0.1"]
234+ exportMetaObjectRevisions: [0]
235+ Property { name: "head"; type: "UnityMenuModel"; isPointer: true }
236+ Property { name: "tail"; type: "UnityMenuModel"; isReadonly: true; isPointer: true }
237+ Property { name: "count"; type: "int"; isReadonly: true }
238+ Signal {
239+ name: "headChanged"
240+ Parameter { name: "head"; type: "UnityMenuModel"; isPointer: true }
241+ }
242+ Signal {
243+ name: "tailChanged"
244+ Parameter { name: "tail"; type: "UnityMenuModel"; isPointer: true }
245+ }
246+ Signal {
247+ name: "countChanged"
248+ Parameter { name: "count"; type: "int" }
249+ }
250+ Method {
251+ name: "push"
252+ Parameter { name: "model"; type: "UnityMenuModel"; isPointer: true }
253+ Parameter { name: "menuIndex"; type: "int" }
254+ }
255+ Method { name: "pop"; type: "UnityMenuModel*" }
256+ }
257+ Component {
258+ name: "VisibleIndicatorsModel"
259+ prototype: "QIdentityProxyModel"
260+ exports: ["Unity.Indicators/VisibleIndicatorsModel 0.1"]
261+ exportMetaObjectRevisions: [0]
262+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
263+ Property { name: "visible"; type: "QVariantMap" }
264+ Signal { name: "totalCountChanged" }
265+ Method {
266+ name: "onBeginRowInserted"
267+ Parameter { type: "QModelIndex" }
268+ Parameter { name: "start"; type: "int" }
269+ Parameter { name: "end"; type: "int" }
270+ }
271+ Method {
272+ name: "onRowInserted"
273+ Parameter { type: "QModelIndex" }
274+ Parameter { name: "start"; type: "int" }
275+ Parameter { name: "end"; type: "int" }
276+ }
277+ }
278+}
plugins/Unity/Indicators/qml/qmldirdeleted−13
@@ -1,13 +0,0 @@
1−module Unity.Indicators
2−plugin IndicatorsQml
3−typeinfo Indicators.qmltypes
4−
5−CachedUnityMenuModel 0.1 CachedUnityMenuModel.qml
6−IndicatorBase 0.1 IndicatorBase.qml
7−MenuItemFactory 0.1 MenuItemFactory.qml
8−MessageMenuItemFactory 0.1 MessageMenuItemFactory.qml
9−
10−internal RemoveBackground RemoveBackground.qml
11−
12−ModemInfoItem 0.1 ModemInfoItem.qml
13−internal RoamingIndication RoamingIndication.qml
plugins/Unity/Indicators/qmldirnew file+6
@@ -0,0 +1,6 @@
1+module Unity.Indicators
2+plugin IndicatorsQml
3+typeinfo Indicators.qmltypes
4+
5+CachedUnityMenuModel 0.1 CachedUnityMenuModel.qml
6+IndicatorBase 0.1 IndicatorBase.qml
plugins/Unity/Launcher/Launcher.qmltypesnew file+174
@@ -0,0 +1,174 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.Launcher 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "LauncherItem"
12+ prototype: "unity::shell::launcher::LauncherItemInterface"
13+ exports: ["Unity.Launcher/LauncherItem 0.1"]
14+ isCreatable: false
15+ exportMetaObjectRevisions: [0]
16+ Signal {
17+ name: "favoriteChanged"
18+ Parameter { name: "favorite"; type: "bool" }
19+ }
20+ Signal {
21+ name: "runningChanged"
22+ Parameter { name: "running"; type: "bool" }
23+ }
24+ }
25+ Component {
26+ name: "LauncherModel"
27+ prototype: "unity::shell::launcher::LauncherModelInterface"
28+ exports: ["Unity.Launcher/LauncherModel 0.1"]
29+ isCreatable: false
30+ isSingleton: true
31+ exportMetaObjectRevisions: [0]
32+ Method {
33+ name: "get"
34+ type: "unity::shell::launcher::LauncherItemInterface*"
35+ Parameter { name: "index"; type: "int" }
36+ }
37+ Method {
38+ name: "move"
39+ Parameter { name: "oldIndex"; type: "int" }
40+ Parameter { name: "newIndex"; type: "int" }
41+ }
42+ Method {
43+ name: "pin"
44+ Parameter { name: "appId"; type: "string" }
45+ Parameter { name: "index"; type: "int" }
46+ }
47+ Method {
48+ name: "pin"
49+ Parameter { name: "appId"; type: "string" }
50+ }
51+ Method {
52+ name: "requestRemove"
53+ Parameter { name: "appId"; type: "string" }
54+ }
55+ Method {
56+ name: "quickListActionInvoked"
57+ Parameter { name: "appId"; type: "string" }
58+ Parameter { name: "actionIndex"; type: "int" }
59+ }
60+ Method {
61+ name: "setUser"
62+ Parameter { name: "username"; type: "string" }
63+ }
64+ Method {
65+ name: "getUrlForAppId"
66+ type: "string"
67+ Parameter { name: "appId"; type: "string" }
68+ }
69+ }
70+ Component {
71+ name: "QuickListModel"
72+ prototype: "unity::shell::launcher::QuickListModelInterface"
73+ exports: ["Unity.Launcher/QuickListModel 0.1"]
74+ isCreatable: false
75+ exportMetaObjectRevisions: [0]
76+ }
77+ Component {
78+ name: "unity::shell::launcher::LauncherItemInterface"
79+ prototype: "QObject"
80+ exports: ["Unity.Launcher/LauncherItemInterface 0.1"]
81+ isCreatable: false
82+ exportMetaObjectRevisions: [0]
83+ Property { name: "appId"; type: "string"; isReadonly: true }
84+ Property { name: "name"; type: "string"; isReadonly: true }
85+ Property { name: "icon"; type: "string"; isReadonly: true }
86+ Property { name: "pinned"; type: "bool"; isReadonly: true }
87+ Property { name: "running"; type: "bool"; isReadonly: true }
88+ Property { name: "recent"; type: "bool"; isReadonly: true }
89+ Property { name: "progress"; type: "int"; isReadonly: true }
90+ Property { name: "count"; type: "int"; isReadonly: true }
91+ Property { name: "focused"; type: "bool"; isReadonly: true }
92+ Property {
93+ name: "quickList"
94+ type: "unity::shell::launcher::QuickListModelInterface"
95+ isReadonly: true
96+ isPointer: true
97+ }
98+ Signal {
99+ name: "pinnedChanged"
100+ Parameter { name: "pinned"; type: "bool" }
101+ }
102+ Signal {
103+ name: "runningChanged"
104+ Parameter { name: "running"; type: "bool" }
105+ }
106+ Signal {
107+ name: "recentChanged"
108+ Parameter { name: "running"; type: "bool" }
109+ }
110+ Signal {
111+ name: "progressChanged"
112+ Parameter { name: "progress"; type: "int" }
113+ }
114+ Signal {
115+ name: "countChanged"
116+ Parameter { name: "count"; type: "int" }
117+ }
118+ Signal {
119+ name: "focusedChanged"
120+ Parameter { name: "focused"; type: "bool" }
121+ }
122+ }
123+ Component {
124+ name: "unity::shell::launcher::LauncherModelInterface"
125+ prototype: "QAbstractListModel"
126+ exports: ["Unity.Launcher/LauncherModelInterface 0.1"]
127+ isCreatable: false
128+ exportMetaObjectRevisions: [0]
129+ Property {
130+ name: "applicationManager"
131+ type: "unity::shell::application::ApplicationManagerInterface"
132+ isPointer: true
133+ }
134+ Method {
135+ name: "move"
136+ Parameter { name: "oldIndex"; type: "int" }
137+ Parameter { name: "newIndex"; type: "int" }
138+ }
139+ Method {
140+ name: "get"
141+ type: "unity::shell::launcher::LauncherItemInterface*"
142+ Parameter { name: "index"; type: "int" }
143+ }
144+ Method {
145+ name: "pin"
146+ Parameter { name: "appId"; type: "string" }
147+ Parameter { name: "index"; type: "int" }
148+ }
149+ Method {
150+ name: "pin"
151+ Parameter { name: "appId"; type: "string" }
152+ }
153+ Method {
154+ name: "requestRemove"
155+ Parameter { name: "appId"; type: "string" }
156+ }
157+ Method {
158+ name: "quickListActionInvoked"
159+ Parameter { name: "appId"; type: "string" }
160+ Parameter { name: "actionIndex"; type: "int" }
161+ }
162+ Method {
163+ name: "setUser"
164+ Parameter { name: "username"; type: "string" }
165+ }
166+ }
167+ Component {
168+ name: "unity::shell::launcher::QuickListModelInterface"
169+ prototype: "QAbstractListModel"
170+ exports: ["Unity.Launcher/QuickListInterface 0.1"]
171+ isCreatable: false
172+ exportMetaObjectRevisions: [0]
173+ }
174+}
plugins/Unity/Launcher/launcheritem.cpp+2−2
@@ -40,7 +40,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
4040 m_quickList->appendAction(nameAction);
4141 QuickListEntry pinningAction;
4242 pinningAction.setActionId("pin_item");
43− pinningAction.setText(gettext("Lock to Launcher"));
43+ pinningAction.setText(gettext("Pin shortcut"));
4444 m_quickList->appendAction(pinningAction);
4545}
4646
@@ -70,7 +70,7 @@ void LauncherItem::setPinned(bool pinned)
7070 m_pinned = pinned;
7171 QuickListEntry entry;
7272 entry.setActionId("pin_item");
73− entry.setText(pinned ? gettext("Unlock from Launcher") : gettext("Lock to Launcher"));
73+ entry.setText(pinned ? gettext("Unpin shortcut") : gettext("Pin shortcut"));
7474 m_quickList->updateAction(entry);
7575 Q_EMIT pinnedChanged(pinned);
7676 }
plugins/Unity/Launcher/launchermodel.cpp+6−3
@@ -128,7 +128,7 @@ void LauncherModel::pin(const QString &appId, int index)
128128 if (index == -1 || index == currentIndex) {
129129 m_list.at(currentIndex)->setPinned(true);
130130 QModelIndex modelIndex = this->index(currentIndex);
131− Q_EMIT dataChanged(modelIndex, modelIndex);
131+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
132132 } else {
133133 move(currentIndex, index);
134134 // move() will store the list to the backend itself, so just exit at this point.
@@ -141,7 +141,8 @@ void LauncherModel::pin(const QString &appId, int index)
141141 beginInsertRows(QModelIndex(), index, index);
142142 LauncherItem *item = new LauncherItem(appId,
143143 m_backend->displayName(appId),
144− m_backend->icon(appId));
144+ m_backend->icon(appId),
145+ this);
145146 item->setPinned(true);
146147 m_list.insert(index, item);
147148 endInsertRows();
@@ -159,6 +160,8 @@ void LauncherModel::requestRemove(const QString &appId)
159160
160161 if (m_appManager->findApplication(appId)) {
161162 m_list.at(index)->setPinned(false);
163+ QModelIndex modelIndex = this->index(index);
164+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
162165 return;
163166 }
164167
@@ -324,7 +327,7 @@ void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
324327 if (found) {
325328 // Shall we paint some running/recent app highlight? If yes, do it here.
326329 } else {
327− LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString());
330+ LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this);
328331 item->setRecent(true);
329332 item->setFocused(app->focused());
330333
plugins/Unity/Session/Session.qmltypesnew file+25
@@ -0,0 +1,25 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.Session 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "DBusUnitySessionService"
12+ prototype: "QObject"
13+ exports: ["Unity.Session/DBusUnitySessionService 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Signal {
18+ name: "logoutRequested"
19+ Parameter { name: "have_inhibitors"; type: "bool" }
20+ }
21+ Signal { name: "logoutReady" }
22+ Method { name: "Logout" }
23+ Method { name: "RequestLogout" }
24+ }
25+}
plugins/Unity/Session/dbusunitysessionservice.cpp+33
@@ -19,6 +19,7 @@
1919
2020// Qt
2121#include <QDBusConnection>
22+#include <QDBusInterface>
2223
2324DBusUnitySessionService::DBusUnitySessionService() : QObject()
2425{
@@ -44,3 +45,35 @@ void DBusUnitySessionService::RequestLogout()
4445{
4546 Q_EMIT logoutRequested(false);
4647}
48+
49+void DBusUnitySessionService::Reboot()
50+{
51+ QDBusConnection connection = QDBusConnection::systemBus();
52+ QDBusInterface iface1 ("org.freedesktop.login1",
53+ "/org/freedesktop/login1",
54+ "org.freedesktop.login1.Manager",
55+ connection);
56+
57+ iface1.call("Reboot", false);
58+}
59+
60+void DBusUnitySessionService::RequestReboot()
61+{
62+ Q_EMIT rebootRequested(false);
63+}
64+
65+void DBusUnitySessionService::Shutdown()
66+{
67+ QDBusConnection connection = QDBusConnection::systemBus();
68+ QDBusInterface iface1 ("org.freedesktop.login1",
69+ "/org/freedesktop/login1",
70+ "org.freedesktop.login1.Manager",
71+ connection);
72+
73+ iface1.call("PowerOff", false);
74+}
75+
76+void DBusUnitySessionService::RequestShutdown()
77+{
78+ Q_EMIT shutdownRequested(false);
79+}
plugins/Unity/Session/dbusunitysessionservice.h+61−4
@@ -46,6 +46,27 @@ Q_SIGNALS:
4646 */
4747 void logoutRequested(bool have_inhibitors);
4848
49+ /**
50+ * rebootRequested signal
51+ *
52+ * This signal is emitted when some applications request the system to
53+ * reboot.
54+ * @param have_inhibitors if there are any special running applications
55+ * which inhibit the reboot.
56+ */
57+ void rebootRequested(bool have_inhibitors);
58+
59+ /**
60+ * shutdownRequested signal
61+ *
62+ * This signal is emitted when some applications request the system to
63+ * shutdown.
64+ * @param have_inhibitors if there are any special running applications
65+ * which inhibit the shutdown.
66+ */
67+ void shutdownRequested(bool have_inhibitors);
68+
69+
4970 /**
5071 * logoutReady signal
5172 *
@@ -61,22 +82,58 @@ public Q_SLOTS:
6182 * This method directly logout the system without user's confirmation.
6283 * Ordinary applications should avoid calling this method. Please call
6384 * RequestLogout() to ask the user to decide logout or not.
64− * This method will stop all the running applications and then signal
65− * logoutReady when all the apps stopped.
6685 */
6786 Q_SCRIPTABLE void Logout();
6887
88+ /**
89+ * Reboot the system.
90+ *
91+ * This method directly reboot the system without user's confirmation.
92+ * Ordinary applications should avoid calling this method. Please call
93+ * RequestReboot() to ask the user to decide reboot or not.
94+ */
95+ Q_SCRIPTABLE void Reboot();
96+
97+ /**
98+ * Shutdown the system.
99+ *
100+ * This method directly shutdown the system without user's confirmation.
101+ * Ordinary applications should avoid calling this method. Please call
102+ * RequestShutdown() to ask the user to decide shutdown or not.
103+ */
104+ Q_SCRIPTABLE void Shutdown();
105+
69106 /**
70107 * Issue a logout request.
71108 *
72109 * This method emit the logoutRequested signal to the shell with a boolean
73110 * which indicates if there's any inhibitors. The shell should receive
74111 * this signal and display a dialog to ask the user to confirm the logout
75− * action. If confirmed, shell can call Logout() method to kill the apps
76− * and then logout
112+ * action. If confirmed, shell can call Logout() method to logout.
77113 */
78114 Q_SCRIPTABLE void RequestLogout();
79115
116+ /**
117+ * Issue a reboot request.
118+ *
119+ * This method emit the rebootRequested signal to the shell with a boolean
120+ * which indicates if there's any inhibitors. The shell should receive
121+ * this signal and display a dialog to ask the user to confirm the reboot
122+ * action. If confirmed, shell can call Reboot() method to reboot
123+ */
124+ Q_SCRIPTABLE void RequestReboot();
125+
126+ /**
127+ * Issue a shutdown request.
128+ *
129+ * This method emit the shutdownRequested signal to the shell with a
130+ * boolean which indicates if there's any inhibitors.
131+ * The shell should receive
132+ * this signal and display a dialog to ask the user to confirm the reboot
133+ * action. If confirmed, shell can call Shutdown() method to reboot
134+ */
135+ Q_SCRIPTABLE void RequestShutdown();
136+
80137};
81138
82139#endif // DBUSUNITYSESSIONSERVICE_H
plugins/Utils/CMakeLists.txt+1
@@ -15,6 +15,7 @@ set(QMLPLUGIN_SRC
1515 qsortfilterproxymodelqml.cpp
1616 timeformatter.cpp
1717 unitymenumodelpaths.cpp
18+ windowkeysfilter.cpp
1819 easingcurve.cpp
1920 plugin.cpp
2021 )
plugins/Utils/Utils.qmltypesnew file+143
@@ -0,0 +1,143 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Utils 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "EasingCurve"
12+ prototype: "QObject"
13+ exports: ["Utils/EasingCurve 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Property { name: "type"; type: "QEasingCurve::Type" }
16+ Property { name: "period"; type: "double" }
17+ Property { name: "progress"; type: "double" }
18+ Property { name: "value"; type: "double"; isReadonly: true }
19+ }
20+ Component {
21+ name: "QAbstractProxyModel"
22+ prototype: "QAbstractItemModel"
23+ Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
24+ }
25+ Component { name: "QIdentityProxyModel"; prototype: "QAbstractProxyModel" }
26+ Component {
27+ name: "QLimitProxyModelQML"
28+ prototype: "QIdentityProxyModel"
29+ exports: ["Utils/LimitProxyModel 0.1"]
30+ exportMetaObjectRevisions: [0]
31+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
32+ Property { name: "limit"; type: "int" }
33+ Property { name: "count"; type: "int"; isReadonly: true }
34+ Signal { name: "totalCountChanged" }
35+ }
36+ Component {
37+ name: "QSortFilterProxyModel"
38+ prototype: "QAbstractProxyModel"
39+ Property { name: "filterRegExp"; type: "QRegExp" }
40+ Property { name: "filterKeyColumn"; type: "int" }
41+ Property { name: "dynamicSortFilter"; type: "bool" }
42+ Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
43+ Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
44+ Property { name: "isSortLocaleAware"; type: "bool" }
45+ Property { name: "sortRole"; type: "int" }
46+ Property { name: "filterRole"; type: "int" }
47+ Method {
48+ name: "setFilterRegExp"
49+ Parameter { name: "pattern"; type: "string" }
50+ }
51+ Method {
52+ name: "setFilterWildcard"
53+ Parameter { name: "pattern"; type: "string" }
54+ }
55+ Method {
56+ name: "setFilterFixedString"
57+ Parameter { name: "pattern"; type: "string" }
58+ }
59+ Method { name: "clear" }
60+ Method { name: "invalidate" }
61+ }
62+ Component {
63+ name: "QSortFilterProxyModelQML"
64+ prototype: "QSortFilterProxyModel"
65+ exports: ["Utils/SortFilterProxyModel 0.1"]
66+ exportMetaObjectRevisions: [0]
67+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
68+ Property { name: "totalCount"; type: "int"; isReadonly: true }
69+ Property { name: "count"; type: "int"; isReadonly: true }
70+ Property { name: "invertMatch"; type: "bool" }
71+ Signal {
72+ name: "invertMatchChanged"
73+ Parameter { type: "bool" }
74+ }
75+ Method {
76+ name: "get"
77+ type: "QVariantMap"
78+ Parameter { name: "row"; type: "int" }
79+ }
80+ Method {
81+ name: "data"
82+ type: "QVariant"
83+ Parameter { name: "row"; type: "int" }
84+ Parameter { name: "role"; type: "int" }
85+ }
86+ Method { name: "count"; type: "int" }
87+ Method {
88+ name: "findFirst"
89+ type: "int"
90+ Parameter { name: "role"; type: "int" }
91+ Parameter { name: "value"; type: "QVariant" }
92+ }
93+ Method {
94+ name: "mapRowToSource"
95+ type: "int"
96+ Parameter { name: "row"; type: "int" }
97+ }
98+ Method {
99+ name: "mapFromSource"
100+ type: "int"
101+ Parameter { name: "row"; type: "int" }
102+ }
103+ Method {
104+ name: "mapToSource"
105+ type: "int"
106+ Parameter { name: "row"; type: "int" }
107+ }
108+ }
109+ Component {
110+ name: "TimeFormatter"
111+ prototype: "QObject"
112+ exports: ["Utils/GDateTimeFormatter 0.1", "Utils/TimeFormatter 0.1"]
113+ exportMetaObjectRevisions: [0, 0]
114+ Property { name: "format"; type: "string" }
115+ Property { name: "timeString"; type: "string"; isReadonly: true }
116+ Property { name: "time"; type: "qlonglong" }
117+ Signal {
118+ name: "formatChanged"
119+ Parameter { name: "format"; type: "string" }
120+ }
121+ Signal {
122+ name: "timeStringChanged"
123+ Parameter { name: "timeString"; type: "string" }
124+ }
125+ Signal {
126+ name: "timeChanged"
127+ Parameter { name: "time"; type: "qlonglong" }
128+ }
129+ }
130+ Component {
131+ name: "UnityMenuModelPaths"
132+ prototype: "QObject"
133+ exports: ["Utils/UnityMenuModelPaths 0.1"]
134+ exportMetaObjectRevisions: [0]
135+ Property { name: "source"; type: "QVariant" }
136+ Property { name: "busName"; type: "QByteArray"; isReadonly: true }
137+ Property { name: "actions"; type: "QVariantMap"; isReadonly: true }
138+ Property { name: "menuObjectPath"; type: "QByteArray"; isReadonly: true }
139+ Property { name: "busNameHint"; type: "QByteArray" }
140+ Property { name: "actionsHint"; type: "QByteArray" }
141+ Property { name: "menuObjectPathHint"; type: "QByteArray" }
142+ }
143+}
plugins/Utils/easingcurve.cpp+8−2
@@ -20,7 +20,9 @@
2020
2121
2222EasingCurve::EasingCurve(QObject *parent):
23− QObject(parent)
23+ QObject(parent),
24+ m_progress(0),
25+ m_value(0)
2426{
2527
2628}
@@ -32,7 +34,11 @@ QEasingCurve::Type EasingCurve::type() const
3234
3335void EasingCurve::setType(const QEasingCurve::Type &type)
3436{
35− m_easingCurve.setType(type);
37+ // FIXME: Working around bug https://bugreports.qt-project.org/browse/QTBUG-38686 here
38+ QEasingCurve newCurve;
39+ newCurve.setType(type);
40+ newCurve.setPeriod(m_easingCurve.period());
41+ m_easingCurve = newCurve;
3642 Q_EMIT typeChanged();
3743}
3844
plugins/Utils/plugin.cpp+2
@@ -30,6 +30,7 @@
3030#include "qsortfilterproxymodelqml.h"
3131#include "timeformatter.h"
3232#include "unitymenumodelpaths.h"
33+#include "windowkeysfilter.h"
3334#include "easingcurve.h"
3435
3536void UtilsPlugin::registerTypes(const char *uri)
@@ -40,6 +41,7 @@ void UtilsPlugin::registerTypes(const char *uri)
4041 qmlRegisterType<QSortFilterProxyModelQML>(uri, 0, 1, "SortFilterProxyModel");
4142 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
4243 qmlRegisterType<TimeFormatter>(uri, 0, 1, "TimeFormatter");
44+ qmlRegisterType<WindowKeysFilter>(uri, 0, 1, "WindowKeysFilter");
4345 qmlRegisterType<GDateTimeFormatter>(uri, 0, 1, "GDateTimeFormatter");
4446 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
4547}
plugins/Utils/windowkeysfilter.cppnew file+57
@@ -0,0 +1,57 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
17+ */
18+
19+#include "windowkeysfilter.h"
20+
21+#include <QQuickWindow>
22+
23+WindowKeysFilter::WindowKeysFilter(QQuickItem *parent)
24+ : QQuickItem(parent)
25+{
26+ connect(this, &QQuickItem::windowChanged,
27+ this, &WindowKeysFilter::setupFilterOnWindow);
28+}
29+
30+bool WindowKeysFilter::eventFilter(QObject *watched, QEvent *event)
31+{
32+ Q_ASSERT(!m_filteredWindow.isNull());
33+ Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
34+
35+ if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
36+ // Let QML see this event and decide if it does not want it
37+ event->accept();
38+ QCoreApplication::sendEvent(this, event);
39+ return event->isAccepted();
40+ } else {
41+ // Not interested
42+ return false;
43+ }
44+}
45+
46+void WindowKeysFilter::setupFilterOnWindow(QQuickWindow *window)
47+{
48+ if (!m_filteredWindow.isNull()) {
49+ m_filteredWindow->removeEventFilter(this);
50+ m_filteredWindow.clear();
51+ }
52+
53+ if (window) {
54+ window->installEventFilter(this);
55+ m_filteredWindow = window;
56+ }
57+}
plugins/Utils/windowkeysfilter.hnew file+51
@@ -0,0 +1,51 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
17+ */
18+
19+#ifndef UNITY_WINDOWKEYSFILTER_H
20+#define UNITY_WINDOWKEYSFILTER_H
21+
22+#include <QQuickItem>
23+#include <QPointer>
24+
25+/*
26+ Receives all key events that arrive in the QQuickWindow where this item is placed.
27+
28+ Rejected key events will be allowed to be processed normally by the QQuickWindow whereas
29+ accepted ones will be filtered out. Events are accepted by default, so make sure you reject
30+ the keys you're not interested in.
31+
32+ If more than one WindowKeysFilter exist in the same QML scene (and thus in the same QQuickWindow)
33+ they will be called in the order of creation, which can be tricky to assess. So the best practice
34+ is to have at most one WindowKeysFilter per QML scene.
35+ */
36+class WindowKeysFilter : public QQuickItem
37+{
38+ Q_OBJECT
39+public:
40+ WindowKeysFilter(QQuickItem *parent = 0);
41+
42+ bool eventFilter(QObject *watched, QEvent *event);
43+
44+private Q_SLOTS:
45+ void setupFilterOnWindow(QQuickWindow *window);
46+
47+private:
48+ QPointer<QQuickWindow> m_filteredWindow;
49+};
50+
51+#endif // UNITY_WINDOWKEYSFILTER_H
po/am.po+60−28
@@ -7,28 +7,28 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-01-18 19:28+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-27 01:25+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "ማስነሻው ላይ መቆለፊያ"
22+msgid "Pin shortcut"
23+msgstr "አቋራጭ ማጣበቂያ"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "ከማስነሻው ላይ ማላቀቂያ"
26+msgid "Unpin shortcut"
27+msgstr "አቋራጭ መለያያ"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
31−msgstr ""
31+msgstr "መግቢያውን መዝለያ"
3232
3333#: qml/Components/EdgeDemo.qml:113
3434msgid "Right edge"
@@ -74,15 +74,11 @@ msgstr ""
7474
7575#: qml/Components/Lockscreen.qml:214
7676msgid "Emergency Call"
77−msgstr ""
77+msgstr "የ ድንገተኛ ጥሪ"
7878
7979#: qml/Components/Lockscreen.qml:231
8080msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
81+msgstr "እሺ"
8682
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
@@ -95,41 +91,45 @@ msgstr "ሰላም"
9591
9692#: qml/Components/PinLockscreen.qml:198
9793msgid "CANCEL"
98−msgstr ""
94+msgstr "መሰረዣ"
9995
10096#: qml/Components/PinLockscreen.qml:216
10197msgid "DONE"
102−msgstr ""
98+msgstr "ጨርሷል"
10399
104100#: qml/Components/SeeMore.qml:35
105101msgid "See more"
106−msgstr ""
102+msgstr "ተጨማሪ መመልከቻ"
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110−msgstr ""
106+msgstr "አነስተኛ መመልከቻ"
111107
112108#: qml/Dash/DashApps.qml:37
113109msgid "Recent"
114−msgstr ""
110+msgstr "የቅርብ ጊዜ"
111+
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "ሁሉንም መመልከቻ"
115115
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118−msgstr ""
118+msgstr "ተጨማሪ..."
119119
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "Less..."
122−msgstr ""
122+msgstr "አነስተኛ..."
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130−msgstr ""
130+msgstr "ግምገማ መጨመሪያ"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "መላኪያ"
135135
@@ -165,11 +165,43 @@ msgstr "የመግቢያ ቃል ማሳያ"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr "ስብሰባ"
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr "ወረፋ በመጠበቅ ላይ…"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr "በማውረድ ላይ"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr "ተሰርዟል"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr "ጨርሷል"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "መፈለጊያ"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "እባክዎን ያስገቡ %1"
po/ar.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-05-22 08:22+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "ثبّت في الشريط"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "فُك التثبيت من الشريط"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -83,10 +83,6 @@ msgstr "مكالمة طوارئ"
8383msgid "OK"
8484msgstr ""
8585
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "عمليات البحث الأخيرة"
89−
9086#: qml/Components/PassphraseLockscreen.qml:60
9187#, qt-format
9288msgid "Hello %1"
@@ -108,7 +104,7 @@ msgstr ""
108104msgid "See more"
109105msgstr "شاهد المزيد"
110106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112108msgid "See less"
113109msgstr "شاهد أقل"
114110
@@ -116,6 +112,10 @@ msgstr "شاهد أقل"
116112msgid "Recent"
117113msgstr "استُخدمت مؤخرًا"
118114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120120msgid "More..."
121121msgstr "المزيد..."
@@ -124,15 +124,15 @@ msgstr "المزيد..."
124124msgid "Less..."
125125msgstr "أقل..."
126126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128128msgid "Rate this"
129129msgstr "قيّم ذلك"
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132132msgid "Add a review"
133133msgstr "أضف تعليق"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136136msgid "Send"
137137msgstr "أرسل"
138138
@@ -168,11 +168,43 @@ msgstr "عرض كلمة السر"
168168msgid "Please enter SIM PIN"
169169msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
170170
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
173+msgstr ""
174+
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr ""
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr ""
202+
171203#: qml/Panel/SearchIndicator.qml:27
172204msgid "Search"
173205msgstr "ابحث"
174206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176208#, qt-format
177209msgid "Please enter %1"
178210msgstr "من فضلك أدخِل %1"
po/ast.po+57−25
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-04-04 02:16+0000\n"
12−"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 16:51+0000\n"
12+"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Caltener nel Llanzador"
22+msgid "Pin shortcut"
23+msgstr "Anclar"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Nun caltener nel llanzador"
26+msgid "Unpin shortcut"
27+msgstr "Desanclar"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -73,8 +73,8 @@ msgid ""
7373"You have now mastered the edge gestures and can start using the "
7474"phone<br><br>Tap on the screen to start"
7575msgstr ""
76−"Agora domina los xestos de los bordes y pue principiar a usar el "
77−"teléfonu<br><br>Toque la pantalla pa comenzar"
76+"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
77+"teléfonu<br><br>Toca la pantalla pa comenzar"
7878
7979#: qml/Components/Lockscreen.qml:214
8080msgid "Emergency Call"
@@ -82,11 +82,7 @@ msgstr "Llamada d'emerxencia"
8282
8383#: qml/Components/Lockscreen.qml:231
8484msgid "OK"
85−msgstr ""
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Busques recientes"
85+msgstr "Aceutar"
9086
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
@@ -99,17 +95,17 @@ msgstr "Hola"
9995
10096#: qml/Components/PinLockscreen.qml:198
10197msgid "CANCEL"
102−msgstr ""
98+msgstr "ENCABOXAR"
10399
104100#: qml/Components/PinLockscreen.qml:216
105101msgid "DONE"
106−msgstr ""
102+msgstr "FECHO"
107103
108104#: qml/Components/SeeMore.qml:35
109105msgid "See more"
110106msgstr "Ver más"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "Ver menos"
115111
@@ -117,6 +113,10 @@ msgstr "Ver menos"
117113msgid "Recent"
118114msgstr "Reciente"
119115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Ver too"
119+
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122122msgstr "Más…"
@@ -125,21 +125,21 @@ msgstr "Más…"
125125msgid "Less..."
126126msgstr "Menos…"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "Valorar esto"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "Amestar una reseña"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "Unviar"
139139
140140#: qml/Greeter/Greeter.qml:157
141141msgid "Swipe to unlock"
142−msgstr ""
142+msgstr "Esliza pa desbloquiar"
143143
144144#: qml/Hud/HudParametrizedActionsPage.qml:132
145145msgid "Confirm"
@@ -167,13 +167,45 @@ msgstr "Amosar contraseña"
167167
168168#: qml/Notifications/NotificationMenuItemFactory.qml:103
169169msgid "Please enter SIM PIN"
170−msgstr "Escriba'l PIN de la SIM"
170+msgstr "Escribi'l PIN de la SIM"
171+
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr "Tocar pa tornar a la llamada..."
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr "Conferencia"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "N'espera…"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Baxando"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Posáu, toca pa reanudar"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Encaboxáu"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Finó"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "Falló, toca pa reintentar"
171203
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "Guetar"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "Introduz %1"
po/az.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-15 09:50+0000\n"
1212"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Panelə Bərkit"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Paneldən Qaldır"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -81,10 +81,6 @@ msgstr "Zərurət zəngi"
8181msgid "OK"
8282msgstr ""
8383
84−#: qml/Components/PageHeader.qml:365
85−msgid "Recent searches"
86−msgstr "Son axtarışlar"
87−
8884#: qml/Components/PassphraseLockscreen.qml:60
8985#, qt-format
9086msgid "Hello %1"
@@ -106,7 +102,7 @@ msgstr ""
106102msgid "See more"
107103msgstr ""
108104
109−#: qml/Components/SeeMore.qml:58
105+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
110106msgid "See less"
111107msgstr ""
112108
@@ -114,6 +110,10 @@ msgstr ""
114110msgid "Recent"
115111msgstr ""
116112
113+#: qml/Dash/GenericScopeView.qml:330
114+msgid "See all"
115+msgstr ""
116+
117117#: qml/Dash/Previews/PreviewActionCombo.qml:34
118118msgid "More..."
119119msgstr ""
@@ -122,15 +122,15 @@ msgstr ""
122122msgid "Less..."
123123msgstr ""
124124
125−#: qml/Dash/Previews/PreviewRatingInput.qml:82
125+#: qml/Dash/Previews/PreviewRatingInput.qml:81
126126msgid "Rate this"
127127msgstr "Qiymət ver"
128128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:128
129+#: qml/Dash/Previews/PreviewRatingInput.qml:126
130130msgid "Add a review"
131131msgstr "Rəy yaz"
132132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:168
133+#: qml/Dash/Previews/PreviewRatingInput.qml:166
134134msgid "Send"
135135msgstr "Göndər"
136136
@@ -166,11 +166,43 @@ msgstr "Parolu göstər"
166166msgid "Please enter SIM PIN"
167167msgstr ""
168168
169+#: qml/Panel/ActiveCallHint.qml:77
170+msgid "Tap to return to call..."
171+msgstr ""
172+
173+#: qml/Panel/ActiveCallHint.qml:90
174+msgid "Conference"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:583
178+msgid "In queue…"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:587
182+msgid "Downloading"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:589
186+msgid "Paused, tap to resume"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:591
190+msgid "Canceled"
191+msgstr ""
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:593
194+msgid "Finished"
195+msgstr ""
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:595
198+msgid "Failed, tap to retry"
199+msgstr ""
200+
169201#: qml/Panel/SearchIndicator.qml:27
170202msgid "Search"
171203msgstr "Axtar"
172204
173−#: qml/Shell.qml:334
205+#: qml/Shell.qml:359
174206#, qt-format
175207msgid "Please enter %1"
176208msgstr "Xahiş edirik daxil edin: %1"
po/bg.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-04-01 14:08+0000\n"
1212"Last-Translator: Atanas Kovachki <Unknown>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Заключване към панела"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Отключи от панела за стартиране"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Спешно повикване"
8787msgid "OK"
8888msgstr ""
8989
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Последни търсения"
93−
9490#: qml/Components/PassphraseLockscreen.qml:60
9591#, qt-format
9692msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr ""
112108msgid "See more"
113109msgstr ""
114110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116112msgid "See less"
117113msgstr ""
118114
@@ -120,6 +116,10 @@ msgstr ""
120116msgid "Recent"
121117msgstr "Последни"
122118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr ""
122+
123123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124124msgid "More..."
125125msgstr ""
@@ -128,15 +128,15 @@ msgstr ""
128128msgid "Less..."
129129msgstr "По-малко..."
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132132msgid "Rate this"
133133msgstr "Оценете това"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136136msgid "Add a review"
137137msgstr "Добави отзив"
138138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140140msgid "Send"
141141msgstr "Изпрати"
142142
@@ -172,11 +172,43 @@ msgstr "Покажи паролата"
172172msgid "Please enter SIM PIN"
173173msgstr ""
174174
175+#: qml/Panel/ActiveCallHint.qml:77
176+msgid "Tap to return to call..."
177+msgstr ""
178+
179+#: qml/Panel/ActiveCallHint.qml:90
180+msgid "Conference"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:583
184+msgid "In queue…"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:587
188+msgid "Downloading"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:589
192+msgid "Paused, tap to resume"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:591
196+msgid "Canceled"
197+msgstr ""
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:593
200+msgid "Finished"
201+msgstr ""
202+
203+#: qml/Panel/Indicators/MenuItemFactory.qml:595
204+msgid "Failed, tap to retry"
205+msgstr ""
206+
175207#: qml/Panel/SearchIndicator.qml:27
176208msgid "Search"
177209msgstr "Търсене"
178210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180212#, qt-format
181213msgid "Please enter %1"
182214msgstr "Моля, въведете %1"
po/br.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-16 11:41+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-28 06:44+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-29 06:54+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Stagañ ouzh al lañser"
22+msgid "Pin shortcut"
23+msgstr "Spilhennañ ar verradenn"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Distagañ diouzh al lañser"
26+msgid "Unpin shortcut"
27+msgstr "Dispilhennañ ar verradenn"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Pellgomzadenn vallus"
8787msgid "OK"
8888msgstr "Mat eo"
8989
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Enklaskoù graet nevez zo"
93−
9490#: qml/Components/PassphraseLockscreen.qml:60
9591#, qt-format
9692msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr "ECHU"
112108msgid "See more"
113109msgstr "Gwelet muioc'h"
114110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116112msgid "See less"
117113msgstr "Gwelet nebeutoc'h"
118114
@@ -120,6 +116,10 @@ msgstr "Gwelet nebeutoc'h"
120116msgid "Recent"
121117msgstr "Nevez zo"
122118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr "Gwelet pep tra"
122+
123123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124124msgid "More..."
125125msgstr "Muioc'h..."
@@ -128,15 +128,15 @@ msgstr "Muioc'h..."
128128msgid "Less..."
129129msgstr "Nebeutoc'h..."
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132132msgid "Rate this"
133133msgstr "Priziit an dra-mañ"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136136msgid "Add a review"
137137msgstr "Ouzhpennañ un ali"
138138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140140msgid "Send"
141141msgstr "Kas"
142142
@@ -172,11 +172,43 @@ msgstr "Diskouez ar ger-tremen"
172172msgid "Please enter SIM PIN"
173173msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
174174
175+#: qml/Panel/ActiveCallHint.qml:77
176+msgid "Tap to return to call..."
177+msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
178+
179+#: qml/Panel/ActiveCallHint.qml:90
180+msgid "Conference"
181+msgstr "Kendiviz"
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:583
184+msgid "In queue…"
185+msgstr "El lostennad..."
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:587
188+msgid "Downloading"
189+msgstr "O pellgargañ"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:589
192+msgid "Paused, tap to resume"
193+msgstr "Ehanet, touchit evit adkregiñ"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:591
196+msgid "Canceled"
197+msgstr "Nullet"
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:593
200+msgid "Finished"
201+msgstr "Echu"
202+
203+#: qml/Panel/Indicators/MenuItemFactory.qml:595
204+msgid "Failed, tap to retry"
205+msgstr "C'hwitet, touchit evit adkregiñ"
206+
175207#: qml/Panel/SearchIndicator.qml:27
176208msgid "Search"
177209msgstr "Klask"
178210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180212#, qt-format
181213msgid "Please enter %1"
182214msgstr "Ebarzhit %1, mar plij"
po/bs.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-16 22:33+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/ca.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-13 07:47+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 10:21+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Mantén-la al llançador"
22+msgid "Pin shortcut"
23+msgstr "Enganxa la drecera"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "No la mantinguis al llançador"
26+msgid "Unpin shortcut"
27+msgstr "Desenganxa la drecera"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -88,10 +88,6 @@ msgstr "Trucada d'emergència"
8888msgid "OK"
8989msgstr "D'acord"
9090
91−#: qml/Components/PageHeader.qml:365
92−msgid "Recent searches"
93−msgstr "Cerques recents"
94−
9591#: qml/Components/PassphraseLockscreen.qml:60
9692#, qt-format
9793msgid "Hello %1"
@@ -113,7 +109,7 @@ msgstr "Fet"
113109msgid "See more"
114110msgstr "Mostra'n més"
115111
116−#: qml/Components/SeeMore.qml:58
112+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
117113msgid "See less"
118114msgstr "Mostra'n menys"
119115
@@ -121,6 +117,10 @@ msgstr "Mostra'n menys"
121117msgid "Recent"
122118msgstr "Recents"
123119
120+#: qml/Dash/GenericScopeView.qml:330
121+msgid "See all"
122+msgstr "Mostra-ho tot"
123+
124124#: qml/Dash/Previews/PreviewActionCombo.qml:34
125125msgid "More..."
126126msgstr "Més..."
@@ -129,15 +129,15 @@ msgstr "Més..."
129129msgid "Less..."
130130msgstr "Menys..."
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:82
132+#: qml/Dash/Previews/PreviewRatingInput.qml:81
133133msgid "Rate this"
134134msgstr "Puntueu-ho"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:128
136+#: qml/Dash/Previews/PreviewRatingInput.qml:126
137137msgid "Add a review"
138138msgstr "Afegiu una ressenya"
139139
140−#: qml/Dash/Previews/PreviewRatingInput.qml:168
140+#: qml/Dash/Previews/PreviewRatingInput.qml:166
141141msgid "Send"
142142msgstr "Envia"
143143
@@ -173,11 +173,43 @@ msgstr "Mostra la contrasenya"
173173msgid "Please enter SIM PIN"
174174msgstr "Introduïu el PIN de la targeta SIM"
175175
176+#: qml/Panel/ActiveCallHint.qml:77
177+msgid "Tap to return to call..."
178+msgstr "Feu un toc per tornar a la trucada..."
179+
180+#: qml/Panel/ActiveCallHint.qml:90
181+msgid "Conference"
182+msgstr "Conferència"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:583
185+msgid "In queue…"
186+msgstr "A la cua..."
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:587
189+msgid "Downloading"
190+msgstr "S'està baixant"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:589
193+msgid "Paused, tap to resume"
194+msgstr "En pausa, feu un toc per continuar"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:591
197+msgid "Canceled"
198+msgstr "S'ha cancel·lat"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:593
201+msgid "Finished"
202+msgstr "S'ha finalitzat"
203+
204+#: qml/Panel/Indicators/MenuItemFactory.qml:595
205+msgid "Failed, tap to retry"
206+msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
207+
176208#: qml/Panel/SearchIndicator.qml:27
177209msgid "Search"
178210msgstr "Cerca"
179211
180−#: qml/Shell.qml:334
212+#: qml/Shell.qml:359
181213#, qt-format
182214msgid "Please enter %1"
183215msgstr "Introduïu %1"
po/ckb.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "چەسباندن بە لانچرەوە"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "ھەڵکەندن لە لانچر"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "هێڵی فریاگوزاری"
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "دوایین گەڕانەکان"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "پلە دابنی بۆی"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "پێداچوونەوە زۆر بکە"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "ناردن"
135135
@@ -165,11 +165,43 @@ msgstr "تێپەڕەوشە پیشان بدە"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "گەڕان"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "تکایە %1 بنووسە"
po/cs.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-08 10:11+0000\n"
1212"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Přidat do Launcheru"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Odebrat z Launcheru"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "Tísňové volání"
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Poslední vyhledávání"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "Ohodnoťte to"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "Přidat recenzi"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "Odeslat"
135135
@@ -165,11 +165,43 @@ msgstr "Zobrazit heslo"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Hledat"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "Zadejte prosím %1"
po/da.po+87−52
@@ -1,175 +1,210 @@
11# Danish translation for unity8
22# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
33# This file is distributed under the same license as the unity8 package.
4−# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
4+#
5+# Ask Hjorth Larsen <asklarsen@gmail.com>, 2014.
56#
67msgid ""
78msgstr ""
89"Project-Id-Version: unity8\n"
910"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-01-14 20:16+0000\n"
12−"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13−"Language-Team: Danish <da@li.org>\n"
11+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
12+"PO-Revision-Date: 2014-07-29 23:18+0000\n"
13+"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
14+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
19+"X-Generator: Launchpad (build 17131)\n"
1920
2021#: plugins/Unity/Launcher/launcheritem.cpp:43
2122#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr ""
23+msgid "Pin shortcut"
24+msgstr "Fastgør genvej"
2425
2526#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
27+msgid "Unpin shortcut"
28+msgstr "Gør genvej flytbar"
2829
2930#: qml/Components/EdgeDemoOverlay.qml:151
3031msgid "Skip intro"
31−msgstr ""
32+msgstr "Spring intro over"
3233
3334#: qml/Components/EdgeDemo.qml:113
3435msgid "Right edge"
35−msgstr ""
36+msgstr "Højre kant"
3637
3738#: qml/Components/EdgeDemo.qml:114
3839msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
40+msgstr "Prøv at stryge fra højre kant for at låse telefonen op"
4041
4142#: qml/Components/EdgeDemo.qml:145
4243msgid "Top edge"
43−msgstr ""
44+msgstr "Øvre kant"
4445
4546#: qml/Components/EdgeDemo.qml:146
4647msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
48+msgstr "Prøv at stryge fra den øvre kant for at tilgå indikatorerne"
4849
4950#: qml/Components/EdgeDemo.qml:171
5051msgid "Close"
51−msgstr ""
52+msgstr "Luk"
5253
5354#: qml/Components/EdgeDemo.qml:172
5455msgid "Swipe up again to close the settings screen"
55−msgstr ""
56+msgstr "Stryg op igen for at låse indstillingsskærmen"
5657
5758#: qml/Components/EdgeDemo.qml:199
5859msgid "Left edge"
59−msgstr ""
60+msgstr "Venstre kant"
6061
6162#: qml/Components/EdgeDemo.qml:200
6263msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr ""
64+msgstr "Stryg fra venstre for at vise opstarteren med hurtig adgang til apps"
6465
6566#: qml/Components/EdgeDemo.qml:227
6667msgid "Well done"
67−msgstr ""
68+msgstr "Godt gjort"
6869
6970#: qml/Components/EdgeDemo.qml:228
7071msgid ""
7172"You have now mastered the edge gestures and can start using the "
7273"phone<br><br>Tap on the screen to start"
7374msgstr ""
75+"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
76+"på skærmen for at starte"
7477
7578#: qml/Components/Lockscreen.qml:214
7679msgid "Emergency Call"
77−msgstr ""
80+msgstr "Nødopkald"
7881
7982#: qml/Components/Lockscreen.qml:231
8083msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
84+msgstr "O.k."
8685
8786#: qml/Components/PassphraseLockscreen.qml:60
8887#, qt-format
8988msgid "Hello %1"
90−msgstr ""
89+msgstr "Hej %1"
9190
9291#: qml/Components/PassphraseLockscreen.qml:60
9392msgid "Hello"
94−msgstr ""
93+msgstr "Hej"
9594
9695#: qml/Components/PinLockscreen.qml:198
9796msgid "CANCEL"
98−msgstr ""
97+msgstr "ANNULLÉR"
9998
10099#: qml/Components/PinLockscreen.qml:216
101100msgid "DONE"
102−msgstr ""
101+msgstr "FÆRDIG"
103102
104103#: qml/Components/SeeMore.qml:35
105104msgid "See more"
106−msgstr ""
105+msgstr "Vis mere"
107106
108−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109108msgid "See less"
110−msgstr ""
109+msgstr "Vis mindre"
111110
112111#: qml/Dash/DashApps.qml:37
113112msgid "Recent"
113+msgstr "Seneste"
114+
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
114117msgstr ""
115118
116119#: qml/Dash/Previews/PreviewActionCombo.qml:34
117120msgid "More..."
118−msgstr ""
121+msgstr "Mere..."
119122
120123#: qml/Dash/Previews/PreviewActionCombo.qml:34
121124msgid "Less..."
122−msgstr ""
125+msgstr "Mindre..."
123126
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125128msgid "Rate this"
126−msgstr ""
129+msgstr "Bedøm dette"
127130
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129132msgid "Add a review"
130−msgstr ""
133+msgstr "Tilføj en forhåndsvisning"
131134
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133136msgid "Send"
134−msgstr ""
137+msgstr "Send"
135138
136139#: qml/Greeter/Greeter.qml:157
137140msgid "Swipe to unlock"
138−msgstr ""
141+msgstr "Stryg for at låse op"
139142
140143#: qml/Hud/HudParametrizedActionsPage.qml:132
141144msgid "Confirm"
142−msgstr ""
145+msgstr "Bekræft"
143146
144147#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145148msgid "Type or say a command"
146−msgstr ""
149+msgstr "Skriv eller indtal en kommando"
147150
148151#: qml/Hud/Hud.qml:84
149152msgid "Loading. Please Wait..."
150−msgstr ""
153+msgstr "Indlæser. Vent venligst..."
151154
152155#: qml/Hud/Hud.qml:89
153156msgid "Speak Now..."
154−msgstr ""
157+msgstr "Tal nu..."
155158
156159#: qml/Hud/Hud.qml:94
157160msgid "Speaking..."
158−msgstr ""
161+msgstr "Taler..."
159162
160163#: qml/Notifications/NotificationMenuItemFactory.qml:91
161164msgid "Show password"
162−msgstr ""
165+msgstr "Vis adgangskode"
163166
164167#: qml/Notifications/NotificationMenuItemFactory.qml:103
165168msgid "Please enter SIM PIN"
169+msgstr "Indtast venligst PIN for SIM"
170+
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
166173msgstr ""
167174
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr "Konference"
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr "I kø…"
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr "Henter"
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr "På pause; tryk for at fortsætte"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr "Annulleret"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr "Færdig"
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr "Mislykkedes; tryk for at prøve igen"
202+
168203#: qml/Panel/SearchIndicator.qml:27
169204msgid "Search"
170−msgstr ""
205+msgstr "Søg"
171206
172−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
173208#, qt-format
174209msgid "Please enter %1"
175−msgstr ""
210+msgstr "Indtast venligst %1"
po/de.po+52−20
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-06 19:34+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-15 13:20+0000\n"
1212"Last-Translator: Phillip Sz <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Im Starter sperren"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Aus dem Starter entsperren"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -83,11 +83,7 @@ msgstr "Notruf"
8383
8484#: qml/Components/Lockscreen.qml:231
8585msgid "OK"
86−msgstr ""
87−
88−#: qml/Components/PageHeader.qml:365
89−msgid "Recent searches"
90−msgstr "Zuletzt verwendete Suchbegriffe"
86+msgstr "OK"
9187
9288#: qml/Components/PassphraseLockscreen.qml:60
9389#, qt-format
@@ -100,17 +96,17 @@ msgstr "Hallo"
10096
10197#: qml/Components/PinLockscreen.qml:198
10298msgid "CANCEL"
103−msgstr ""
99+msgstr "ABBRECHEN"
104100
105101#: qml/Components/PinLockscreen.qml:216
106102msgid "DONE"
107−msgstr ""
103+msgstr "ERLEDIGT"
108104
109105#: qml/Components/SeeMore.qml:35
110106msgid "See more"
111107msgstr "Mehr ansehen"
112108
113−#: qml/Components/SeeMore.qml:58
109+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
114110msgid "See less"
115111msgstr "Weniger ansehen"
116112
@@ -118,6 +114,10 @@ msgstr "Weniger ansehen"
118114msgid "Recent"
119115msgstr "Kürzlich"
120116
117+#: qml/Dash/GenericScopeView.qml:330
118+msgid "See all"
119+msgstr ""
120+
121121#: qml/Dash/Previews/PreviewActionCombo.qml:34
122122msgid "More..."
123123msgstr "Mehr …"
@@ -126,15 +126,15 @@ msgstr "Mehr …"
126126msgid "Less..."
127127msgstr "Weniger …"
128128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:82
129+#: qml/Dash/Previews/PreviewRatingInput.qml:81
130130msgid "Rate this"
131131msgstr "Bewerten"
132132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:128
133+#: qml/Dash/Previews/PreviewRatingInput.qml:126
134134msgid "Add a review"
135135msgstr "Bewertung hinzufügen"
136136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:168
137+#: qml/Dash/Previews/PreviewRatingInput.qml:166
138138msgid "Send"
139139msgstr "Senden"
140140
@@ -170,11 +170,43 @@ msgstr "Passwort anzeigen"
170170msgid "Please enter SIM PIN"
171171msgstr "Bitte die PIN der SIM eingeben"
172172
173+#: qml/Panel/ActiveCallHint.qml:77
174+msgid "Tap to return to call..."
175+msgstr ""
176+
177+#: qml/Panel/ActiveCallHint.qml:90
178+msgid "Conference"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:583
182+msgid "In queue…"
183+msgstr "In Warteschlange …"
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:587
186+msgid "Downloading"
187+msgstr "Wird heruntergeladen"
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:589
190+msgid "Paused, tap to resume"
191+msgstr "Pausiert, tippen Sie zum fortsetzen"
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:591
194+msgid "Canceled"
195+msgstr "Abgebrochen"
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:593
198+msgid "Finished"
199+msgstr "Erledigt"
200+
201+#: qml/Panel/Indicators/MenuItemFactory.qml:595
202+msgid "Failed, tap to retry"
203+msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
204+
173205#: qml/Panel/SearchIndicator.qml:27
174206msgid "Search"
175207msgstr "Suchen"
176208
177−#: qml/Shell.qml:334
209+#: qml/Shell.qml:359
178210#, qt-format
179211msgid "Please enter %1"
180212msgstr "Bitte geben Sie %1 ein"
po/el.po+57−25
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-02-26 09:58+0000\n"
12−"Last-Translator: j3lc <x_nikos@yahoo.gr>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-28 16:06+0000\n"
12+"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-29 06:54+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Διατήρηση στον εκκινητή"
22+msgid "Pin shortcut"
23+msgstr "Καρφίτσωμα συντόμευσης"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Απομάκρυνση από τον εκκινητή"
26+msgid "Unpin shortcut"
27+msgstr "Ξεκαρφίτσωμα συντόμευσης"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "Κλήση έκτακτης ανάγκης"
8282
8383#: qml/Components/Lockscreen.qml:231
8484msgid "OK"
85−msgstr ""
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Πρόσφατες αναζητήσεις"
85+msgstr "OK"
9086
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
@@ -99,47 +95,51 @@ msgstr "Γεια σας"
9995
10096#: qml/Components/PinLockscreen.qml:198
10197msgid "CANCEL"
102−msgstr ""
98+msgstr "ΑΚΥΡΩΣΗ"
10399
104100#: qml/Components/PinLockscreen.qml:216
105101msgid "DONE"
106−msgstr ""
102+msgstr "ΟΛΟΚΛΗΡΩΣΗ"
107103
108104#: qml/Components/SeeMore.qml:35
109105msgid "See more"
110106msgstr "Περρισότερα"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "Λιγότερα"
115111
116112#: qml/Dash/DashApps.qml:37
117113msgid "Recent"
118−msgstr ""
114+msgstr "Πρόσφατα"
115+
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Εμφάνιση όλων"
119119
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122−msgstr ""
122+msgstr "Περισσότερα..."
123123
124124#: qml/Dash/Previews/PreviewActionCombo.qml:34
125125msgid "Less..."
126−msgstr ""
126+msgstr "Λιγότερα..."
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "Βαθμολογήστε το"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "Προσθέστε την αξιολόγησή σας"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "Αποστολή"
139139
140140#: qml/Greeter/Greeter.qml:157
141141msgid "Swipe to unlock"
142−msgstr ""
142+msgstr "Σύρετε για να ξεκλειδώσετε"
143143
144144#: qml/Hud/HudParametrizedActionsPage.qml:132
145145msgid "Confirm"
@@ -169,11 +169,43 @@ msgstr "Εμφάνιση κωδικού"
169169msgid "Please enter SIM PIN"
170170msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
171171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr ""
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr "Συνδιάσκεψη"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Λήψη σε εξέλιξη"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Σταματημένο, αγγίξτε για συνέχιση"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Ακυρώθηκε"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Ολοκληρώθηκε"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr ""
203+
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "Αναζήτηση"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "Πληκτρολογήστε %1"
po/en_AU.po+62−28
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2013-09-28 07:46+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-27 12:14+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr ""
22+msgid "Pin shortcut"
23+msgstr "Pin shortcut"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
26+msgid "Unpin shortcut"
27+msgstr "Unpin shortcut"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -71,6 +71,8 @@ msgid ""
7171"You have now mastered the edge gestures and can start using the "
7272"phone<br><br>Tap on the screen to start"
7373msgstr ""
74+"You have now mastered the edge gestures and can start using the "
75+"phone<br><br>Tap on the screen to start"
7476
7577#: qml/Components/Lockscreen.qml:214
7678msgid "Emergency Call"
@@ -78,11 +80,7 @@ msgstr "Emergency Call"
7880
7981#: qml/Components/Lockscreen.qml:231
8082msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Recent searches"
83+msgstr "OK"
8684
8785#: qml/Components/PassphraseLockscreen.qml:60
8886#, qt-format
@@ -95,47 +93,51 @@ msgstr "Hello"
9593
9694#: qml/Components/PinLockscreen.qml:198
9795msgid "CANCEL"
98−msgstr ""
96+msgstr "CANCEL"
9997
10098#: qml/Components/PinLockscreen.qml:216
10199msgid "DONE"
102−msgstr ""
100+msgstr "DONE"
103101
104102#: qml/Components/SeeMore.qml:35
105103msgid "See more"
106−msgstr ""
104+msgstr "See more"
107105
108−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109107msgid "See less"
110−msgstr ""
108+msgstr "See less"
111109
112110#: qml/Dash/DashApps.qml:37
113111msgid "Recent"
114−msgstr ""
112+msgstr "Recent"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "See all"
115117
116118#: qml/Dash/Previews/PreviewActionCombo.qml:34
117119msgid "More..."
118−msgstr ""
120+msgstr "More..."
119121
120122#: qml/Dash/Previews/PreviewActionCombo.qml:34
121123msgid "Less..."
122−msgstr ""
124+msgstr "Less..."
123125
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125127msgid "Rate this"
126128msgstr "Rate this"
127129
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129131msgid "Add a review"
130132msgstr "Add a review"
131133
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133135msgid "Send"
134136msgstr "Send"
135137
136138#: qml/Greeter/Greeter.qml:157
137139msgid "Swipe to unlock"
138−msgstr ""
140+msgstr "Swipe to unlock"
139141
140142#: qml/Hud/HudParametrizedActionsPage.qml:132
141143msgid "Confirm"
@@ -159,17 +161,49 @@ msgstr "Speaking..."
159161
160162#: qml/Notifications/NotificationMenuItemFactory.qml:91
161163msgid "Show password"
162−msgstr ""
164+msgstr "Show password"
163165
164166#: qml/Notifications/NotificationMenuItemFactory.qml:103
165167msgid "Please enter SIM PIN"
166−msgstr ""
168+msgstr "Please enter SIM PIN"
169+
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "Tap to return to call..."
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "Conference"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "In queue…"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "Downloading"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "Paused, tap to resume"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "Cancelled"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "Finished"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "Failed, tap to retry"
167201
168202#: qml/Panel/SearchIndicator.qml:27
169203msgid "Search"
170204msgstr "Search"
171205
172−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
173207#, qt-format
174208msgid "Please enter %1"
175209msgstr "Please enter %1"
po/en_GB.po+55−23
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-03-07 13:27+0000\n"
12−"Last-Translator: Andi Chandler <Unknown>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-27 14:09+0000\n"
12+"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Lock to Launcher"
22+msgid "Pin shortcut"
23+msgstr "Pin shortcut"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Unlock from Launcher"
26+msgid "Unpin shortcut"
27+msgstr "Unpin shortcut"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,11 +80,7 @@ msgstr "Emergency Call"
8080
8181#: qml/Components/Lockscreen.qml:231
8282msgid "OK"
83−msgstr ""
84−
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Recent searches"
83+msgstr "OK"
8884
8985#: qml/Components/PassphraseLockscreen.qml:60
9086#, qt-format
@@ -97,23 +93,27 @@ msgstr "Hello"
9793
9894#: qml/Components/PinLockscreen.qml:198
9995msgid "CANCEL"
100−msgstr ""
96+msgstr "CANCEL"
10197
10298#: qml/Components/PinLockscreen.qml:216
10399msgid "DONE"
104−msgstr ""
100+msgstr "DONE"
105101
106102#: qml/Components/SeeMore.qml:35
107103msgid "See more"
108104msgstr "See more"
109105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111107msgid "See less"
112108msgstr "See less"
113109
114110#: qml/Dash/DashApps.qml:37
115111msgid "Recent"
116−msgstr ""
112+msgstr "Recent"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "See all"
117117
118118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119119msgid "More..."
@@ -123,21 +123,21 @@ msgstr "More..."
123123msgid "Less..."
124124msgstr "Less..."
125125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127127msgid "Rate this"
128128msgstr "Rate this"
129129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131131msgid "Add a review"
132132msgstr "Add a review"
133133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135135msgid "Send"
136136msgstr "Send"
137137
138138#: qml/Greeter/Greeter.qml:157
139139msgid "Swipe to unlock"
140−msgstr ""
140+msgstr "Swipe to unlock"
141141
142142#: qml/Hud/HudParametrizedActionsPage.qml:132
143143msgid "Confirm"
@@ -167,11 +167,43 @@ msgstr "Show password"
167167msgid "Please enter SIM PIN"
168168msgstr "Please enter SIM PIN"
169169
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "Tap to return to call..."
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "Conference"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "In queue…"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "Downloading"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "Paused, tap to resume"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "Cancelled"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "Finished"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "Failed, tap to retry"
201+
170202#: qml/Panel/SearchIndicator.qml:27
171203msgid "Search"
172204msgstr "Search"
173205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175207#, qt-format
176208msgid "Please enter %1"
177209msgstr "Please enter %1"
po/eo.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/es.po+50−18
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-26 03:08+0000\n"
12−"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-26 06:22+0000\n"
12+"Last-Translator: Paco Molinero <paco@byasl.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-27 07:13+0000\n"
18−"X-Generator: Launchpad (build 17077)\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Fijar al lanzador"
22+msgid "Pin shortcut"
23+msgstr "Anclar"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Quitar del lanzador"
26+msgid "Unpin shortcut"
27+msgstr "Desanclar"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -85,10 +85,6 @@ msgstr "Llamada de emergencia"
8585msgid "OK"
8686msgstr "Aceptar"
8787
88−#: qml/Components/PageHeader.qml:365
89−msgid "Recent searches"
90−msgstr "Búsquedas recientes"
91−
9288#: qml/Components/PassphraseLockscreen.qml:60
9389#, qt-format
9490msgid "Hello %1"
@@ -110,7 +106,7 @@ msgstr "HECHO"
110106msgid "See more"
111107msgstr "Ver más"
112108
113−#: qml/Components/SeeMore.qml:58
109+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
114110msgid "See less"
115111msgstr "Ver menos"
116112
@@ -118,6 +114,10 @@ msgstr "Ver menos"
118114msgid "Recent"
119115msgstr "Recientes"
120116
117+#: qml/Dash/GenericScopeView.qml:330
118+msgid "See all"
119+msgstr "Ver todo"
120+
121121#: qml/Dash/Previews/PreviewActionCombo.qml:34
122122msgid "More..."
123123msgstr "Más…"
@@ -126,15 +126,15 @@ msgstr "Más…"
126126msgid "Less..."
127127msgstr "Menos…"
128128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:82
129+#: qml/Dash/Previews/PreviewRatingInput.qml:81
130130msgid "Rate this"
131131msgstr "Valorar esto"
132132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:128
133+#: qml/Dash/Previews/PreviewRatingInput.qml:126
134134msgid "Add a review"
135135msgstr "Añadir una reseña"
136136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:168
137+#: qml/Dash/Previews/PreviewRatingInput.qml:166
138138msgid "Send"
139139msgstr "Enviar"
140140
@@ -170,11 +170,43 @@ msgstr "Mostrar contraseña"
170170msgid "Please enter SIM PIN"
171171msgstr "Escriba el PIN de la SIM"
172172
173+#: qml/Panel/ActiveCallHint.qml:77
174+msgid "Tap to return to call..."
175+msgstr "Toque para volver a llamar..."
176+
177+#: qml/Panel/ActiveCallHint.qml:90
178+msgid "Conference"
179+msgstr "Conferencia"
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:583
182+msgid "In queue…"
183+msgstr "En espera…"
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:587
186+msgid "Downloading"
187+msgstr "Descargando"
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:589
190+msgid "Paused, tap to resume"
191+msgstr "Pausado, toque para reanudar"
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:591
194+msgid "Canceled"
195+msgstr "Cancelado"
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:593
198+msgid "Finished"
199+msgstr "Finalizado"
200+
201+#: qml/Panel/Indicators/MenuItemFactory.qml:595
202+msgid "Failed, tap to retry"
203+msgstr "Falló, toque para reintentar"
204+
173205#: qml/Panel/SearchIndicator.qml:27
174206msgid "Search"
175207msgstr "Buscar"
176208
177−#: qml/Shell.qml:334
209+#: qml/Shell.qml:359
178210#, qt-format
179211msgid "Please enter %1"
180212msgstr "Introduzca %1"
po/eu.po+56−24
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-03-30 12:44+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 12:38+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Lotu abiarazlera"
22+msgid "Pin shortcut"
23+msgstr "Ainguratu lasterbidea"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Askatu abiarazletik"
26+msgid "Unpin shortcut"
27+msgstr "Askatu lasterbidea"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -52,7 +52,7 @@ msgstr "Itxi"
5252
5353#: qml/Components/EdgeDemo.qml:172
5454msgid "Swipe up again to close the settings screen"
55−msgstr "Arrastatu gora berriro ezarpenen leihoa ixteko"
55+msgstr "Pasatu hatza gora berriro ezarpenen leihoa ixteko"
5656
5757#: qml/Components/EdgeDemo.qml:199
5858msgid "Left edge"
@@ -61,7 +61,7 @@ msgstr "Ezkerreko ertza"
6161#: qml/Components/EdgeDemo.qml:200
6262msgid "Swipe from the left to reveal the launcher for quick access to apps"
6363msgstr ""
64−"Arrastatu ezkerretik abiarazlea erakutsi eta aplikazioak eskura berehala "
64+"Pasatu hatza ezkerretik abiarazlea erakutsi eta aplikazioak eskura berehala "
6565"izateko"
6666
6767#: qml/Components/EdgeDemo.qml:227
@@ -74,7 +74,7 @@ msgid ""
7474"phone<br><br>Tap on the screen to start"
7575msgstr ""
7676"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
77−"zaitezke<br><br>Ukitu pantaila hasteko"
77+"zaitezke<br><br>Sakatu pantailan hasteko"
7878
7979#: qml/Components/Lockscreen.qml:214
8080msgid "Emergency Call"
@@ -82,11 +82,7 @@ msgstr "Larrialdi-deia"
8282
8383#: qml/Components/Lockscreen.qml:231
8484msgid "OK"
85−msgstr ""
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Azken bilaketak"
85+msgstr "Ados"
9086
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
@@ -99,17 +95,17 @@ msgstr "Kaixo"
9995
10096#: qml/Components/PinLockscreen.qml:198
10197msgid "CANCEL"
102−msgstr ""
98+msgstr "UTZI"
10399
104100#: qml/Components/PinLockscreen.qml:216
105101msgid "DONE"
106−msgstr ""
102+msgstr "EGINDA"
107103
108104#: qml/Components/SeeMore.qml:35
109105msgid "See more"
110106msgstr "Ikusi gehiago"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "Ikusi gutxiago"
115111
@@ -117,6 +113,10 @@ msgstr "Ikusi gutxiago"
117113msgid "Recent"
118114msgstr "Azkenak"
119115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Ikusi guztiak"
119+
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122122msgstr "Gehiago..."
@@ -125,21 +125,21 @@ msgstr "Gehiago..."
125125msgid "Less..."
126126msgstr "Gutxiago..."
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "Puntuatu hau"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "Gehitu kritika"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "Bidali"
139139
140140#: qml/Greeter/Greeter.qml:157
141141msgid "Swipe to unlock"
142−msgstr ""
142+msgstr "Pasatu hatza desblokeatzeko"
143143
144144#: qml/Hud/HudParametrizedActionsPage.qml:132
145145msgid "Confirm"
@@ -169,11 +169,43 @@ msgstr "Erakutsi pasahitza"
169169msgid "Please enter SIM PIN"
170170msgstr "Sartu SIMaren PINa"
171171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr "Sakatu deia itzultzeko..."
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr "Konferentzia"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "Ilaran..."
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Deskargatzen"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Pausatuta, sakatu jarraitzeko"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Utzita"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Amaituta"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "Huts egin du, sakatu berriro saiatzeko"
203+
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "Bilatu"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "Sartu %1"
po/fa.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-10-31 19:02+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Persian <fa@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/fi.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-14 10:23+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 16:07+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Kiinnitä käynnistimeen"
22+msgid "Pin shortcut"
23+msgstr "Kiinnitä pikakuvake"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Poista käynnistimestä"
26+msgid "Unpin shortcut"
27+msgstr "Poista pikakuvakkeen kiinnitys"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "Hätäpuhelu"
8282msgid "OK"
8383msgstr "OK"
8484
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Viimeisimmät haut"
88−
8985#: qml/Components/PassphraseLockscreen.qml:60
9086#, qt-format
9187msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "VALMIS"
107103msgid "See more"
108104msgstr "Näytä lisää"
109105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111107msgid "See less"
112108msgstr "Näytä vähemmän"
113109
@@ -115,6 +111,10 @@ msgstr "Näytä vähemmän"
115111msgid "Recent"
116112msgstr "Viimeisimmät"
117113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "Näytä kaikki"
117+
118118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119119msgid "More..."
120120msgstr "Lisää..."
@@ -123,15 +123,15 @@ msgstr "Lisää..."
123123msgid "Less..."
124124msgstr "Vähemmän..."
125125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127127msgid "Rate this"
128128msgstr "Arvioi tämä"
129129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131131msgid "Add a review"
132132msgstr "Lisää arvostelu"
133133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135135msgid "Send"
136136msgstr "Lähetä"
137137
@@ -167,11 +167,43 @@ msgstr "Näytä salasana"
167167msgid "Please enter SIM PIN"
168168msgstr "Anna SIM-kortin PIN-koodi"
169169
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "Napauta palataksesi puheluun..."
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "Ryhmäpuhelu"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "Jonossa…"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "Ladataan"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "Keskeytetty, napauta palauttaaksesi"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "Peruttu"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "Valmistunut"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "Epäonnistunut, napauta yrittääksesi uudelleen"
201+
170202#: qml/Panel/SearchIndicator.qml:27
171203msgid "Search"
172204msgstr "Hae"
173205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175207#, qt-format
176208msgid "Please enter %1"
177209msgstr "Kirjoita %1"
po/fo.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-14 20:08+0000\n"
1212"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Leita"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/fr.po+52−20
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-08 20:45+0000\n"
12−"Last-Translator: Pierre Slamich <pierre.slamich@gmail.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-26 20:52+0000\n"
12+"Last-Translator: Anne <anneonyme017@gmail.com>\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"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Conserver dans le lanceur"
22+msgid "Pin shortcut"
23+msgstr "Épingler le raccourci"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Retirer du lanceur"
26+msgid "Unpin shortcut"
27+msgstr "Détacher le raccourci"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -89,10 +89,6 @@ msgstr "Appel d'urgence"
8989msgid "OK"
9090msgstr "OK"
9191
92−#: qml/Components/PageHeader.qml:365
93−msgid "Recent searches"
94−msgstr "Recherches récentes"
95−
9692#: qml/Components/PassphraseLockscreen.qml:60
9793#, qt-format
9894msgid "Hello %1"
@@ -108,13 +104,13 @@ msgstr "ANNULER"
108104
109105#: qml/Components/PinLockscreen.qml:216
110106msgid "DONE"
111−msgstr "TERMINÉ"
107+msgstr "VALIDER"
112108
113109#: qml/Components/SeeMore.qml:35
114110msgid "See more"
115111msgstr "Voir plus"
116112
117−#: qml/Components/SeeMore.qml:58
113+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
118114msgid "See less"
119115msgstr "Voir moins"
120116
@@ -122,6 +118,10 @@ msgstr "Voir moins"
122118msgid "Recent"
123119msgstr "Récent"
124120
121+#: qml/Dash/GenericScopeView.qml:330
122+msgid "See all"
123+msgstr "Tout voir"
124+
125125#: qml/Dash/Previews/PreviewActionCombo.qml:34
126126msgid "More..."
127127msgstr "Plus..."
@@ -130,15 +130,15 @@ msgstr "Plus..."
130130msgid "Less..."
131131msgstr "Moins..."
132132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:82
133+#: qml/Dash/Previews/PreviewRatingInput.qml:81
134134msgid "Rate this"
135135msgstr "Evaluez ceci"
136136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:128
137+#: qml/Dash/Previews/PreviewRatingInput.qml:126
138138msgid "Add a review"
139139msgstr "Ajouter un avis"
140140
141−#: qml/Dash/Previews/PreviewRatingInput.qml:168
141+#: qml/Dash/Previews/PreviewRatingInput.qml:166
142142msgid "Send"
143143msgstr "Envoyer"
144144
@@ -172,13 +172,45 @@ msgstr "Afficher le mot de passe"
172172
173173#: qml/Notifications/NotificationMenuItemFactory.qml:103
174174msgid "Please enter SIM PIN"
175−msgstr "Veuillez entrer le code PIN de votre carte SIM"
175+msgstr "Entrez le code PIN"
176+
177+#: qml/Panel/ActiveCallHint.qml:77
178+msgid "Tap to return to call..."
179+msgstr "Appuyez pour revenir à l'appel…"
180+
181+#: qml/Panel/ActiveCallHint.qml:90
182+msgid "Conference"
183+msgstr "Conférence"
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:583
186+msgid "In queue…"
187+msgstr "Dans la file d'attente..."
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:587
190+msgid "Downloading"
191+msgstr "Téléchargement en cours"
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:589
194+msgid "Paused, tap to resume"
195+msgstr "En pause, appuyez pour reprendre"
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:591
198+msgid "Canceled"
199+msgstr "Annulé"
200+
201+#: qml/Panel/Indicators/MenuItemFactory.qml:593
202+msgid "Finished"
203+msgstr "Terminé"
204+
205+#: qml/Panel/Indicators/MenuItemFactory.qml:595
206+msgid "Failed, tap to retry"
207+msgstr "Échec, appuyez pour réessayer"
176208
177209#: qml/Panel/SearchIndicator.qml:27
178210msgid "Search"
179211msgstr "Rechercher"
180212
181−#: qml/Shell.qml:334
213+#: qml/Shell.qml:359
182214#, qt-format
183215msgid "Please enter %1"
184216msgstr "Veuillez saisir %1"
po/gd.po+56−23
@@ -2,29 +2,30 @@
22# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
33# This file is distributed under the same license as the unity8 package.
44# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5−#
5+# GunChleoc <fios@foramnagaidhlig.net>, 2014.
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-05-17 21:08+0000\n"
12−"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
13−"Language-Team: Gaelic; Scottish <gd@li.org>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 22:02+0000\n"
12+"Last-Translator: GunChleoc <Unknown>\n"
13+"Language-Team: Fòram na Gàidhlig http://www.foramnagaidhlig.net\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
19+"Language: gd\n"
1920
2021#: plugins/Unity/Launcher/launcheritem.cpp:43
2122#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Glais ris an lòinsear"
23+msgid "Pin shortcut"
24+msgstr "Prìnich ath-ghoirid"
2425
2526#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Dealaich on lòinsear"
27+msgid "Unpin shortcut"
28+msgstr "Neo-phrìnich an ath-ghoirid"
2829
2930#: qml/Components/EdgeDemoOverlay.qml:151
3031msgid "Skip intro"
@@ -86,11 +87,7 @@ msgstr "Gairm èiginn"
8687
8788#: qml/Components/Lockscreen.qml:231
8889msgid "OK"
89−msgstr ""
90−
91−#: qml/Components/PageHeader.qml:365
92−msgid "Recent searches"
93−msgstr "Na lorg thu o chionn goirid"
90+msgstr "Ceart ma-thà"
9491
9592#: qml/Components/PassphraseLockscreen.qml:60
9693#, qt-format
@@ -103,17 +100,17 @@ msgstr "Shin thu"
103100
104101#: qml/Components/PinLockscreen.qml:198
105102msgid "CANCEL"
106−msgstr ""
103+msgstr "SGUIR DHETH"
107104
108105#: qml/Components/PinLockscreen.qml:216
109106msgid "DONE"
110−msgstr ""
107+msgstr "DÈANTA"
111108
112109#: qml/Components/SeeMore.qml:35
113110msgid "See more"
114111msgstr "Seall barrachd"
115112
116−#: qml/Components/SeeMore.qml:58
113+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
117114msgid "See less"
118115msgstr "Seall nas lugha"
119116
@@ -121,6 +118,10 @@ msgstr "Seall nas lugha"
121118msgid "Recent"
122119msgstr "O chionn goirid"
123120
121+#: qml/Dash/GenericScopeView.qml:330
122+msgid "See all"
123+msgstr "Seall na h-uile"
124+
124125#: qml/Dash/Previews/PreviewActionCombo.qml:34
125126msgid "More..."
126127msgstr "Barrachd..."
@@ -129,15 +130,15 @@ msgstr "Barrachd..."
129130msgid "Less..."
130131msgstr "Nas lugha..."
131132
132−#: qml/Dash/Previews/PreviewRatingInput.qml:82
133+#: qml/Dash/Previews/PreviewRatingInput.qml:81
133134msgid "Rate this"
134135msgstr "Rangaich seo"
135136
136−#: qml/Dash/Previews/PreviewRatingInput.qml:128
137+#: qml/Dash/Previews/PreviewRatingInput.qml:126
137138msgid "Add a review"
138139msgstr "Cuir lèirmheas ris"
139140
140−#: qml/Dash/Previews/PreviewRatingInput.qml:168
141+#: qml/Dash/Previews/PreviewRatingInput.qml:166
141142msgid "Send"
142143msgstr "Cuir"
143144
@@ -173,11 +174,43 @@ msgstr "Seall am facal-faire"
173174msgid "Please enter SIM PIN"
174175msgstr "Cuir a-steach SIM PIN"
175176
177+#: qml/Panel/ActiveCallHint.qml:77
178+msgid "Tap to return to call..."
179+msgstr "Gnog gus tilleadh dhan ghairm..."
180+
181+#: qml/Panel/ActiveCallHint.qml:90
182+msgid "Conference"
183+msgstr "Gairm co-labhairt"
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:583
186+msgid "In queue…"
187+msgstr "Air a' chiudha…"
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:587
190+msgid "Downloading"
191+msgstr "'Ga luchdadh a-nuas"
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:589
194+msgid "Paused, tap to resume"
195+msgstr "'Na stad, thoir gnogag gus leantainn air"
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:591
198+msgid "Canceled"
199+msgstr "Air a sgur dheth"
200+
201+#: qml/Panel/Indicators/MenuItemFactory.qml:593
202+msgid "Finished"
203+msgstr "Coileanta"
204+
205+#: qml/Panel/Indicators/MenuItemFactory.qml:595
206+msgid "Failed, tap to retry"
207+msgstr "Dh'fhàillig leis, thoir gnogag gus feuchainn a-rithist"
208+
176209#: qml/Panel/SearchIndicator.qml:27
177210msgid "Search"
178211msgstr "Lorg"
179212
180−#: qml/Shell.qml:334
213+#: qml/Shell.qml:359
181214#, qt-format
182215msgid "Please enter %1"
183216msgstr "Cuir a-steach %1"
po/gl.po+57−23
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-07 13:26+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 17:22+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"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Manter no Iniciador"
22+msgid "Pin shortcut"
23+msgstr "Fixar o atallo"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Non manter no Iniciador"
26+msgid "Unpin shortcut"
27+msgstr "Eliminar o atallo"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -36,7 +36,7 @@ msgstr "Bordo dereito"
3636
3737#: qml/Components/EdgeDemo.qml:114
3838msgid "Try swiping from the right edge to unlock the phone"
39−msgstr "Probe a esvarar desde o bordo dereito para desbloquear o teléfono"
39+msgstr "Esvare o dedo desde o bordo dereito para desbloquear o teléfono"
4040
4141#: qml/Components/EdgeDemo.qml:145
4242msgid "Top edge"
@@ -44,7 +44,7 @@ msgstr "Bordo superior"
4444
4545#: qml/Components/EdgeDemo.qml:146
4646msgid "Try swiping from the top edge to access the indicators"
47−msgstr "Esvare desde o bordo superior para acceder aos indicadores."
47+msgstr "Esvare o dedo desde o bordo superior para acceder aos indicadores."
4848
4949#: qml/Components/EdgeDemo.qml:171
5050msgid "Close"
@@ -52,7 +52,7 @@ msgstr "Pechar"
5252
5353#: qml/Components/EdgeDemo.qml:172
5454msgid "Swipe up again to close the settings screen"
55−msgstr "Esvare cara a arriba para pechar os axustes"
55+msgstr "Esvare o dedo de novo cara a arriba para pechar os axustes"
5656
5757#: qml/Components/EdgeDemo.qml:199
5858msgid "Left edge"
@@ -60,11 +60,13 @@ msgstr "Bordo esquerdo"
6060
6161#: qml/Components/EdgeDemo.qml:200
6262msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr "Esvare desde a esquerda para mostrar o iniciador de acceso rápido"
63+msgstr ""
64+"Esvare o dedo desde a esquerda para mostrar o iniciador rápido dos "
65+"aplicativos"
6466
6567#: qml/Components/EdgeDemo.qml:227
6668msgid "Well done"
67−msgstr "Ben feito"
69+msgstr "Ben feito!"
6870
6971#: qml/Components/EdgeDemo.qml:228
7072msgid ""
@@ -82,10 +84,6 @@ msgstr "Chamada de emerxencia"
8284msgid "OK"
8385msgstr "Aceptar"
8486
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Buscas recentes"
88−
8987#: qml/Components/PassphraseLockscreen.qml:60
9088#, qt-format
9189msgid "Hello %1"
@@ -107,7 +105,7 @@ msgstr "FEITO"
107105msgid "See more"
108106msgstr "Ver máis"
109107
110−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111109msgid "See less"
112110msgstr "Ver menos"
113111
@@ -115,6 +113,10 @@ msgstr "Ver menos"
115113msgid "Recent"
116114msgstr "Recentes"
117115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Ver todo"
119+
118120#: qml/Dash/Previews/PreviewActionCombo.qml:34
119121msgid "More..."
120122msgstr "Máis…"
@@ -123,21 +125,21 @@ msgstr "Máis…"
123125msgid "Less..."
124126msgstr "Menos..."
125127
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127129msgid "Rate this"
128130msgstr "Valore isto"
129131
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131133msgid "Add a review"
132134msgstr "Engadir unha opinión"
133135
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135137msgid "Send"
136138msgstr "Enviar"
137139
138140#: qml/Greeter/Greeter.qml:157
139141msgid "Swipe to unlock"
140−msgstr "Esvare para desbloquear"
142+msgstr "Esvare o dedo para desbloquear"
141143
142144#: qml/Hud/HudParametrizedActionsPage.qml:132
143145msgid "Confirm"
@@ -167,11 +169,43 @@ msgstr "Mostrar contrasinal"
167169msgid "Please enter SIM PIN"
168170msgstr "Introduza o PIN da SIM"
169171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr "Toque para volver a chamar..."
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr "Conferencia"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "Na cola..."
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Descargando"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Detido, toque para continuar"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Cancelado"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Rematado"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "Fallou, toque para reintentar"
203+
170204#: qml/Panel/SearchIndicator.qml:27
171205msgid "Search"
172206msgstr "Buscar"
173207
174−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
175209#, qt-format
176210msgid "Please enter %1"
177211msgstr "Introduza %1"
po/he.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-09 07:49+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 16:26+0000\n"
1212"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "נעילה למשגר"
22+msgid "Pin shortcut"
23+msgstr "הצמדת קיצור דרך"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "הפרדה מהמשגר"
26+msgid "Unpin shortcut"
27+msgstr "הפרדת קיצור הדרך"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "שיחת חירום"
8282msgid "OK"
8383msgstr "אישור"
8484
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "חיפושים אחרונים"
88−
8985#: qml/Components/PassphraseLockscreen.qml:60
9086#, qt-format
9187msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "בוצע"
107103msgid "See more"
108104msgstr "לראות עוד"
109105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111107msgid "See less"
112108msgstr "לראות פחות"
113109
@@ -115,6 +111,10 @@ msgstr "לראות פחות"
115111msgid "Recent"
116112msgstr "בשימוש לאחרונה"
117113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "להציג הכול"
117+
118118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119119msgid "More..."
120120msgstr "עוד…"
@@ -123,15 +123,15 @@ msgstr "עוד…"
123123msgid "Less..."
124124msgstr "פחות…"
125125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127127msgid "Rate this"
128128msgstr "דירוג היישום"
129129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131131msgid "Add a review"
132132msgstr "הוספת סקירה"
133133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135135msgid "Send"
136136msgstr "שליחה"
137137
@@ -167,11 +167,43 @@ msgstr "הצגת הססמה"
167167msgid "Please enter SIM PIN"
168168msgstr "נא להזין את קוד ה־<U+200F>SIM"
169169
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "יש לגעת כדי להחזיר שיחה…"
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "ועידה"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "בתור…"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "בהורדה"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "מושהה, יש לגעת כדי להמשיך"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "בוטל"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "הושלם"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "נכשל, יש לגעת כדי לנסות שוב"
201+
170202#: qml/Panel/SearchIndicator.qml:27
171203msgid "Search"
172204msgstr "חיפוש"
173205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175207#, qt-format
176208msgid "Please enter %1"
177209msgstr "נא להזין %1"
po/hi.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-15 01:49+0000\n"
1212"Last-Translator: Siddhanathan S. <Unknown>\n"
1313"Language-Team: Hindi <hi@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr "आपातकालीन कॉल"
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "पिछले खोजों"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "समीक्षा दे"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "भेजें"
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "खोजें"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/hr.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-06-27 04:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Croatian <hr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Nedavne pretrage"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Pretraživanje"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/hu.po+62−28
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-01-14 23:02+0000\n"
12−"Last-Translator: Kristóf Kiszel <Unknown>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-27 15:04+0000\n"
12+"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Indítóban tartás"
22+msgid "Pin shortcut"
23+msgstr "Indító rögzítése"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Eltávolítás az Indítóból"
26+msgid "Unpin shortcut"
27+msgstr "Indító feloldása"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -73,6 +73,8 @@ msgid ""
7373"You have now mastered the edge gestures and can start using the "
7474"phone<br><br>Tap on the screen to start"
7575msgstr ""
76+"Elsajátította a gesztusokat, és megkezdheti a telefon "
77+"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
7678
7779#: qml/Components/Lockscreen.qml:214
7880msgid "Emergency Call"
@@ -80,11 +82,7 @@ msgstr "Vészhívás"
8082
8183#: qml/Components/Lockscreen.qml:231
8284msgid "OK"
83−msgstr ""
84−
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Legutóbbi keresések"
85+msgstr "OK"
8886
8987#: qml/Components/PassphraseLockscreen.qml:60
9088#, qt-format
@@ -97,47 +95,51 @@ msgstr "Szia"
9795
9896#: qml/Components/PinLockscreen.qml:198
9997msgid "CANCEL"
100−msgstr ""
98+msgstr "MÉGSE"
10199
102100#: qml/Components/PinLockscreen.qml:216
103101msgid "DONE"
104−msgstr ""
102+msgstr "KÉSZ"
105103
106104#: qml/Components/SeeMore.qml:35
107105msgid "See more"
108−msgstr ""
106+msgstr "Több"
109107
110−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111109msgid "See less"
112−msgstr ""
110+msgstr "Kevesebb"
113111
114112#: qml/Dash/DashApps.qml:37
115113msgid "Recent"
116−msgstr ""
114+msgstr "Legutóbbi"
115+
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Összes megtekintése"
117119
118120#: qml/Dash/Previews/PreviewActionCombo.qml:34
119121msgid "More..."
120−msgstr ""
122+msgstr "Több…"
121123
122124#: qml/Dash/Previews/PreviewActionCombo.qml:34
123125msgid "Less..."
124−msgstr ""
126+msgstr "Kevesebb…"
125127
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127129msgid "Rate this"
128130msgstr "Osztályzás"
129131
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131133msgid "Add a review"
132134msgstr "Értékelés hozzáadása"
133135
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135137msgid "Send"
136138msgstr "Küldés"
137139
138140#: qml/Greeter/Greeter.qml:157
139141msgid "Swipe to unlock"
140−msgstr ""
142+msgstr "Csúsztasson a feloldáshoz"
141143
142144#: qml/Hud/HudParametrizedActionsPage.qml:132
143145msgid "Confirm"
@@ -165,13 +167,45 @@ msgstr "Jelszó megjelenítése"
165167
166168#: qml/Notifications/NotificationMenuItemFactory.qml:103
167169msgid "Please enter SIM PIN"
168−msgstr ""
170+msgstr "Adja meg a SIM PIN kódját"
171+
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr "Érintse meg, hogy visszatérjen a híváshoz..."
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr "Konferencia"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "Sorban…"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Letöltés"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Szüneteltetve, koppintson a folytatáshoz"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Megszakítva"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Befejeződött"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "Sikertelen, koppintson az újrapróbáláshoz"
169203
170204#: qml/Panel/SearchIndicator.qml:27
171205msgid "Search"
172206msgstr "Keresés"
173207
174−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
175209#, qt-format
176210msgid "Please enter %1"
177211msgstr "Adja meg a következőt: %1"
po/hy.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-06-27 04:43+0000\n"
1212"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Վերջին որոնումներ"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Որոնում"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/id.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/is.po+75−38
@@ -1,30 +1,33 @@
1+# translation of po_unity8-is.po to icelandic
12# Icelandic translation for unity8
23# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
34# This file is distributed under the same license as the unity8 package.
4−# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
55#
6+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
7+# Sveinn í Felli <sv1@fellsnet.is>, 2014.
68msgid ""
79msgstr ""
8−"Project-Id-Version: unity8\n"
10+"Project-Id-Version: po_unity8-is\n"
911"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2013-09-18 16:22+0000\n"
12−"Last-Translator: Andri Thorlacius <Unknown>\n"
13−"Language-Team: Icelandic <is@li.org>\n"
12+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
13+"PO-Revision-Date: 2014-07-23 05:57+0000\n"
14+"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
15+"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
19+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
20+"X-Generator: Launchpad (build 17131)\n"
21+"Language: is\n"
1922
2023#: plugins/Unity/Launcher/launcheritem.cpp:43
2124#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr ""
25+msgid "Pin shortcut"
26+msgstr "Pinna flýtilykil"
2427
2528#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
29+msgid "Unpin shortcut"
30+msgstr "Losa flýtilykil"
2831
2932#: qml/Components/EdgeDemoOverlay.qml:151
3033msgid "Skip intro"
@@ -37,7 +40,7 @@ msgstr "Hægri brún"
3740#: qml/Components/EdgeDemo.qml:114
3841msgid "Try swiping from the right edge to unlock the phone"
3942msgstr ""
40−"Prufaðu að renna puttanum frá hægri brúninni til að aflæsa símanum þínum."
43+"Prófaðu að strjúka fingrinum frá hægri brúninni til að aflæsa símanum þínum."
4144
4245#: qml/Components/EdgeDemo.qml:145
4346msgid "Top edge"
@@ -45,7 +48,7 @@ msgstr "Efri brún"
4548
4649#: qml/Components/EdgeDemo.qml:146
4750msgid "Try swiping from the top edge to access the indicators"
48−msgstr ""
51+msgstr "Reyndu að strjúka frá toppi til að fá aðgang að tilkynningum"
4952
5053#: qml/Components/EdgeDemo.qml:171
5154msgid "Close"
@@ -53,7 +56,7 @@ msgstr "Loka"
5356
5457#: qml/Components/EdgeDemo.qml:172
5558msgid "Swipe up again to close the settings screen"
56−msgstr ""
59+msgstr "Strjúktu upp til að loka stillingum"
5760
5861#: qml/Components/EdgeDemo.qml:199
5962msgid "Left edge"
@@ -61,7 +64,7 @@ msgstr "Vinstri brún"
6164
6265#: qml/Components/EdgeDemo.qml:200
6366msgid "Swipe from the left to reveal the launcher for quick access to apps"
64−msgstr ""
67+msgstr "Strjúktu frá vinstri til að afhjúpa flýtiræsi forrita"
6568
6669#: qml/Components/EdgeDemo.qml:227
6770msgid "Well done"
@@ -72,6 +75,8 @@ msgid ""
7275"You have now mastered the edge gestures and can start using the "
7376"phone<br><br>Tap on the screen to start"
7477msgstr ""
78+"Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
79+"símann<br><br>Sláðu létt á skjáinn til að byrja"
7580
7681#: qml/Components/Lockscreen.qml:214
7782msgid "Emergency Call"
@@ -79,11 +84,7 @@ msgstr "Neyðarsímtal"
7984
8085#: qml/Components/Lockscreen.qml:231
8186msgid "OK"
82−msgstr ""
83−
84−#: qml/Components/PageHeader.qml:365
85−msgid "Recent searches"
86−msgstr "Nýlegar leitir"
87+msgstr "Í lagi"
8788
8889#: qml/Components/PassphraseLockscreen.qml:60
8990#, qt-format
@@ -96,47 +97,51 @@ msgstr "Hæ"
9697
9798#: qml/Components/PinLockscreen.qml:198
9899msgid "CANCEL"
99−msgstr ""
100+msgstr "HÆTTA VIÐ"
100101
101102#: qml/Components/PinLockscreen.qml:216
102103msgid "DONE"
103−msgstr ""
104+msgstr "BÚIÐ"
104105
105106#: qml/Components/SeeMore.qml:35
106107msgid "See more"
107−msgstr ""
108+msgstr "Sjá meira"
108109
109−#: qml/Components/SeeMore.qml:58
110+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
110111msgid "See less"
111−msgstr ""
112+msgstr "Sjá minna"
112113
113114#: qml/Dash/DashApps.qml:37
114115msgid "Recent"
116+msgstr "Nýlegt"
117+
118+#: qml/Dash/GenericScopeView.qml:330
119+msgid "See all"
115120msgstr ""
116121
117122#: qml/Dash/Previews/PreviewActionCombo.qml:34
118123msgid "More..."
119−msgstr ""
124+msgstr "Meira..."
120125
121126#: qml/Dash/Previews/PreviewActionCombo.qml:34
122127msgid "Less..."
123−msgstr ""
128+msgstr "Minna..."
124129
125−#: qml/Dash/Previews/PreviewRatingInput.qml:82
130+#: qml/Dash/Previews/PreviewRatingInput.qml:81
126131msgid "Rate this"
127132msgstr "Gefa þessu einkunn"
128133
129−#: qml/Dash/Previews/PreviewRatingInput.qml:128
134+#: qml/Dash/Previews/PreviewRatingInput.qml:126
130135msgid "Add a review"
131136msgstr "Gefa umsögn"
132137
133−#: qml/Dash/Previews/PreviewRatingInput.qml:168
138+#: qml/Dash/Previews/PreviewRatingInput.qml:166
134139msgid "Send"
135140msgstr "Senda"
136141
137142#: qml/Greeter/Greeter.qml:157
138143msgid "Swipe to unlock"
139−msgstr ""
144+msgstr "Strjúka til að aflæsa"
140145
141146#: qml/Hud/HudParametrizedActionsPage.qml:132
142147msgid "Confirm"
@@ -144,15 +149,15 @@ msgstr "Staðfesta"
144149
145150#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
146151msgid "Type or say a command"
147−msgstr "Skrifaðu eða segðu eitthvað"
152+msgstr "Skrifaðu eða segðu skipun"
148153
149154#: qml/Hud/Hud.qml:84
150155msgid "Loading. Please Wait..."
151−msgstr "Hleð. Vinsamlegast Bíðið..."
156+msgstr "Hleð. Bíddu aðeins..."
152157
153158#: qml/Hud/Hud.qml:89
154159msgid "Speak Now..."
155−msgstr "Talaðu Núna..."
160+msgstr "Tala núna..."
156161
157162#: qml/Hud/Hud.qml:94
158163msgid "Speaking..."
@@ -160,17 +165,49 @@ msgstr "Tala..."
160165
161166#: qml/Notifications/NotificationMenuItemFactory.qml:91
162167msgid "Show password"
163−msgstr ""
168+msgstr "Birta lykilorð"
164169
165170#: qml/Notifications/NotificationMenuItemFactory.qml:103
166171msgid "Please enter SIM PIN"
172+msgstr "Settu inn PIN fyrir SIM"
173+
174+#: qml/Panel/ActiveCallHint.qml:77
175+msgid "Tap to return to call..."
176+msgstr ""
177+
178+#: qml/Panel/ActiveCallHint.qml:90
179+msgid "Conference"
167180msgstr ""
168181
182+#: qml/Panel/Indicators/MenuItemFactory.qml:583
183+msgid "In queue…"
184+msgstr "Í biðröð..."
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:587
187+msgid "Downloading"
188+msgstr "Sæki"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:589
191+msgid "Paused, tap to resume"
192+msgstr "Í bið, sláðu létt til að halda áfram"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:591
195+msgid "Canceled"
196+msgstr "Hætt við"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:593
199+msgid "Finished"
200+msgstr "Lokið"
201+
202+#: qml/Panel/Indicators/MenuItemFactory.qml:595
203+msgid "Failed, tap to retry"
204+msgstr "Mistókst, sláðu létt til að reyna aftur"
205+
169206#: qml/Panel/SearchIndicator.qml:27
170207msgid "Search"
171208msgstr "Leita"
172209
173−#: qml/Shell.qml:334
210+#: qml/Shell.qml:359
174211#, qt-format
175212msgid "Please enter %1"
176−msgstr ""
213+msgstr "Settu inn %1"
po/it.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-10 12:08+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 16:09+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Blocca nel Launcher"
22+msgid "Pin shortcut"
23+msgstr "Blocca scorciatoia"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Sblocca dal Launcher"
26+msgid "Unpin shortcut"
27+msgstr "Sblocca scorciatoia"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Chiamata di emergenza"
8787msgid "OK"
8888msgstr "OK"
8989
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Ricerche recenti"
93−
9490#: qml/Components/PassphraseLockscreen.qml:60
9591#, qt-format
9692msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr "Fatto"
112108msgid "See more"
113109msgstr "Mostra di più"
114110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116112msgid "See less"
117113msgstr "Mostra meno"
118114
@@ -120,6 +116,10 @@ msgstr "Mostra meno"
120116msgid "Recent"
121117msgstr "Recenti"
122118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr "Mostra tutto"
122+
123123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124124msgid "More..."
125125msgstr "Altro..."
@@ -128,15 +128,15 @@ msgstr "Altro..."
128128msgid "Less..."
129129msgstr "Meno..."
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132132msgid "Rate this"
133133msgstr "Valuta"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136136msgid "Add a review"
137137msgstr "Aggiungi una recensione"
138138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140140msgid "Send"
141141msgstr "Invia"
142142
@@ -172,11 +172,43 @@ msgstr "Mostra password"
172172msgid "Please enter SIM PIN"
173173msgstr "Inserire il codice PIN"
174174
175+#: qml/Panel/ActiveCallHint.qml:77
176+msgid "Tap to return to call..."
177+msgstr "Tocca per tornare alla chiamata..."
178+
179+#: qml/Panel/ActiveCallHint.qml:90
180+msgid "Conference"
181+msgstr "Conferenza"
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:583
184+msgid "In queue…"
185+msgstr "In coda..."
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:587
188+msgid "Downloading"
189+msgstr "Scaricamento in corso"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:589
192+msgid "Paused, tap to resume"
193+msgstr "In pausa. Tocca per riprendere"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:591
196+msgid "Canceled"
197+msgstr "Annullato"
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:593
200+msgid "Finished"
201+msgstr "Completato"
202+
203+#: qml/Panel/Indicators/MenuItemFactory.qml:595
204+msgid "Failed, tap to retry"
205+msgstr "Non riuscito. Tocca per riprovare"
206+
175207#: qml/Panel/SearchIndicator.qml:27
176208msgid "Search"
177209msgstr "Cerca"
178210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180212#, qt-format
181213msgid "Please enter %1"
182214msgstr "Inserire %1"
po/ja.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-18 07:01+0000\n"
1212"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Launcherに登録"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Launcherへの登録を解除"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "最近の検索"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "送信"
135135
@@ -165,11 +165,43 @@ msgstr "パスワードを表示"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "検索"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/km.po+52−20
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-05-19 01:42+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-16 01:37+0000\n"
1212"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
1313"Language-Team: Khmer <km@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "ចាក់​សោ​​ទៅ​កម្មវិធី​ចាប់ផ្ដើម"
22+msgid "Pin shortcut"
23+msgstr "ភ្ជាប់​ផ្លូវកាត់"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "ដោះសោ​ពី​កម្មវិធី​ចាប់ផ្ដើម"
26+msgid "Unpin shortcut"
27+msgstr "មិន​ភ្ជាប់ផ្លូវកាត់"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "ការ​ហៅ​ពេល​អាសន្ន"
8282
8383#: qml/Components/Lockscreen.qml:231
8484msgid "OK"
85−msgstr ""
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "ការ​ស្វែងរក​ថ្មី"
85+msgstr "យល់ព្រម"
9086
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
@@ -99,17 +95,17 @@ msgstr "សួស្តី"
9995
10096#: qml/Components/PinLockscreen.qml:198
10197msgid "CANCEL"
102−msgstr ""
98+msgstr "បោះបង់"
10399
104100#: qml/Components/PinLockscreen.qml:216
105101msgid "DONE"
106−msgstr ""
102+msgstr "រួចរាល់"
107103
108104#: qml/Components/SeeMore.qml:35
109105msgid "See more"
110106msgstr "មើល​ច្រើន​ទៀត"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "មើល​តិច​ជាង"
115111
@@ -117,6 +113,10 @@ msgstr "មើល​តិច​ជាង"
117113msgid "Recent"
118114msgstr "បច្ចុប្បន្ន"
119115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122122msgstr "ច្រើនជាង​..."
@@ -125,15 +125,15 @@ msgstr "ច្រើនជាង​..."
125125msgid "Less..."
126126msgstr "តិច​ជាង..."
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "វាយតម្លៃ​វា"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "បន្ថែម​ការ​ពិនិត្យ"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "ផ្ញើ"
139139
@@ -169,11 +169,43 @@ msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
169169msgid "Please enter SIM PIN"
170170msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
171171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr ""
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "ក្នុងជួរ…"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "ទាញយក"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "បាន​ផ្អាក, ប៉ះ ដើម្បីបន្ត"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "បាន​បោះបង់"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "បាន​បញ្ចប់"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "បាន​បរាជ័យ ប៉ះ​ ដើម្បី​ព្យាយាម​ម្ដង​ទៀត"
203+
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "ស្វែង​រក"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "សូម​បញ្ចូល %1"
po/kn.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "ಹುಡುಕು"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/ko.po+81−47
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2013-10-10 07:04+0000\n"
12−"Last-Translator: Kim Boram <boramism@gmail.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-17 03:56+0000\n"
12+"Last-Translator: MinSik CHO <Unknown>\n"
1313"Language-Team: Korean <ko@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr ""
22+msgid "Pin shortcut"
23+msgstr "바로가기를 고정하기"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
26+msgid "Unpin shortcut"
27+msgstr "바로가기를 고정 해제하기"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -36,140 +36,174 @@ msgstr "오른쪽 끝"
3636
3737#: qml/Components/EdgeDemo.qml:114
3838msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "휴대 전화를 잠금 해제하려면 오른쪽에서부터 끌어보세요."
4040
4141#: qml/Components/EdgeDemo.qml:145
4242msgid "Top edge"
43−msgstr ""
43+msgstr "윗쪽 끝"
4444
4545#: qml/Components/EdgeDemo.qml:146
4646msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
47+msgstr "알림을 보려면 위쪽에서 끌어보세요."
4848
4949#: qml/Components/EdgeDemo.qml:171
5050msgid "Close"
51−msgstr ""
51+msgstr "닫기"
5252
5353#: qml/Components/EdgeDemo.qml:172
5454msgid "Swipe up again to close the settings screen"
55−msgstr ""
55+msgstr "환경설정 창을 닫으려면 위로 다시 끌어보세요."
5656
5757#: qml/Components/EdgeDemo.qml:199
5858msgid "Left edge"
59−msgstr ""
59+msgstr "왼쪽 끝"
6060
6161#: qml/Components/EdgeDemo.qml:200
6262msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr ""
63+msgstr "애플리케이션을 빠르게 열기 위해 런처를 보려면 왼쪽에서 끌어보세요."
6464
6565#: qml/Components/EdgeDemo.qml:227
6666msgid "Well done"
67−msgstr ""
67+msgstr "잘하셨습니다."
6868
6969#: qml/Components/EdgeDemo.qml:228
7070msgid ""
7171"You have now mastered the edge gestures and can start using the "
7272"phone<br><br>Tap on the screen to start"
7373msgstr ""
74+"여러분은 끝에서 끌어오기 제스쳐를 완벽히 익히셨기 때문에 휴대 전화를 사용하기 시작할 수 있습니다. <br><br> 스크린을 터치해서 "
75+"시작하세요."
7476
7577#: qml/Components/Lockscreen.qml:214
7678msgid "Emergency Call"
77−msgstr ""
79+msgstr "긴급 통화"
7880
7981#: qml/Components/Lockscreen.qml:231
8082msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "최근 검색"
83+msgstr "확인"
8684
8785#: qml/Components/PassphraseLockscreen.qml:60
8886#, qt-format
8987msgid "Hello %1"
90−msgstr ""
88+msgstr "안녕하세요 %1"
9189
9290#: qml/Components/PassphraseLockscreen.qml:60
9391msgid "Hello"
94−msgstr ""
92+msgstr "안녕하세요"
9593
9694#: qml/Components/PinLockscreen.qml:198
9795msgid "CANCEL"
98−msgstr ""
96+msgstr "취소"
9997
10098#: qml/Components/PinLockscreen.qml:216
10199msgid "DONE"
102−msgstr ""
100+msgstr "완료"
103101
104102#: qml/Components/SeeMore.qml:35
105103msgid "See more"
106−msgstr ""
104+msgstr "더 보기"
107105
108−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109107msgid "See less"
110−msgstr ""
108+msgstr "간단히 표시하기"
111109
112110#: qml/Dash/DashApps.qml:37
113111msgid "Recent"
112+msgstr "최근"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
114116msgstr ""
115117
116118#: qml/Dash/Previews/PreviewActionCombo.qml:34
117119msgid "More..."
118−msgstr ""
120+msgstr "더 보기..."
119121
120122#: qml/Dash/Previews/PreviewActionCombo.qml:34
121123msgid "Less..."
122−msgstr ""
124+msgstr "간단하게..."
123125
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125127msgid "Rate this"
126−msgstr ""
128+msgstr "이 애플리케이션 평가하기"
127129
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129131msgid "Add a review"
130−msgstr ""
132+msgstr "평가 제출하기"
131133
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133135msgid "Send"
134−msgstr ""
136+msgstr "보내기"
135137
136138#: qml/Greeter/Greeter.qml:157
137139msgid "Swipe to unlock"
138−msgstr ""
140+msgstr "휴대전화를 잠금 해제하려면 움직이세요."
139141
140142#: qml/Hud/HudParametrizedActionsPage.qml:132
141143msgid "Confirm"
142−msgstr ""
144+msgstr "확인"
143145
144146#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145147msgid "Type or say a command"
146−msgstr ""
148+msgstr "명령을 입력하거나 말하세요."
147149
148150#: qml/Hud/Hud.qml:84
149151msgid "Loading. Please Wait..."
150−msgstr ""
152+msgstr "준비 중.. 잠시만 기다려 주세요..."
151153
152154#: qml/Hud/Hud.qml:89
153155msgid "Speak Now..."
154−msgstr ""
156+msgstr "지금 말하세요..."
155157
156158#: qml/Hud/Hud.qml:94
157159msgid "Speaking..."
158−msgstr ""
160+msgstr "말하는 중..."
159161
160162#: qml/Notifications/NotificationMenuItemFactory.qml:91
161163msgid "Show password"
162−msgstr ""
164+msgstr "비밀 번호 보기"
163165
164166#: qml/Notifications/NotificationMenuItemFactory.qml:103
165167msgid "Please enter SIM PIN"
168+msgstr "심카드의 PIN 번호를 입력하세요."
169+
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr ""
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
166176msgstr ""
167177
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "재생 중..."
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "다운로드 중"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "일시 중지 되었습니다. 계속하려면 누르세요."
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "취소됨"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "완료됨"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "실패하였습니다. 재시도하려면 누르세요."
201+
168202#: qml/Panel/SearchIndicator.qml:27
169203msgid "Search"
170204msgstr "검색"
171205
172−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
173207#, qt-format
174208msgid "Please enter %1"
175−msgstr ""
209+msgstr "%1 를 입력해주세요."
po/ky.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Соңку издөөлөр"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Издөө"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/lo.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "ສົ່ງ"
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "ຊອກຫາ"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "ກະລູນາປ້ອນ %1"
po/lt.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Palikti mygtukų juostoje"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Nelaikyti mygtukų juostoje"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -83,10 +83,6 @@ msgstr "Pagalbos skambutis"
8383msgid "OK"
8484msgstr ""
8585
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "Paskiausios paieškos"
89−
9086#: qml/Components/PassphraseLockscreen.qml:60
9187#, qt-format
9288msgid "Hello %1"
@@ -108,7 +104,7 @@ msgstr ""
108104msgid "See more"
109105msgstr ""
110106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112108msgid "See less"
113109msgstr ""
114110
@@ -116,6 +112,10 @@ msgstr ""
116112msgid "Recent"
117113msgstr "Paskiausieji"
118114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120120msgid "More..."
121121msgstr "Daugiau..."
@@ -124,15 +124,15 @@ msgstr "Daugiau..."
124124msgid "Less..."
125125msgstr "Mažiau..."
126126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128128msgid "Rate this"
129129msgstr "Įvertinkite tai"
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132132msgid "Add a review"
133133msgstr "Pridėkite apžvalgą"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136136msgid "Send"
137137msgstr "Siųsti"
138138
@@ -168,11 +168,43 @@ msgstr "Rodyti slaptažodį"
168168msgid "Please enter SIM PIN"
169169msgstr "Įveskite SIM kortelės PIN kodą"
170170
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
173+msgstr ""
174+
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr ""
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr ""
202+
171203#: qml/Panel/SearchIndicator.qml:27
172204msgid "Search"
173205msgstr "Paieška"
174206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176208#, qt-format
177209msgid "Please enter %1"
178210msgstr "Prašom įvesti %1"
po/lv.po+53−21
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-05-31 14:54+0000\n"
12−"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-26 16:21+0000\n"
12+"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
1313"Language-Team: Latvian <lv@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Pieslēgt palaidējam"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Atslēgt no palaidēja"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -78,11 +78,7 @@ msgstr "Neatliekamās Palīdzības zvans"
7878
7979#: qml/Components/Lockscreen.qml:231
8080msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Nesen veiktās meklēšanas"
81+msgstr "LABI"
8682
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
@@ -95,17 +91,17 @@ msgstr "Sveiki"
9591
9692#: qml/Components/PinLockscreen.qml:198
9793msgid "CANCEL"
98−msgstr ""
94+msgstr "ATCELT"
9995
10096#: qml/Components/PinLockscreen.qml:216
10197msgid "DONE"
102−msgstr ""
98+msgstr "IZDARĪTS"
10399
104100#: qml/Components/SeeMore.qml:35
105101msgid "See more"
106102msgstr "Redzēt vairāk"
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr "Redzēt mazāk"
111107
@@ -113,6 +109,10 @@ msgstr "Redzēt mazāk"
113109msgid "Recent"
114110msgstr "Nesens"
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "Skatīt visus"
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr "Vairāk..."
@@ -121,15 +121,15 @@ msgstr "Vairāk..."
121121msgid "Less..."
122122msgstr "Mazāk..."
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "Novērtēt šo"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "Komentēt"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "Sūtīt"
135135
@@ -165,11 +165,43 @@ msgstr "Rādīt paroli"
165165msgid "Please enter SIM PIN"
166166msgstr "Lūdzu ievadiet SIM PIN"
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr "Konference"
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr "Lejupielādē"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr "Atcelts"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr "Pabeigts"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Meklēt"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "Lūdzu ievadiet %1"
po/ml.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-11-23 11:44+0000\n"
12−"Last-Translator: Stym alfaZ <Unknown>\n"
12+"Last-Translator: ST Alfas <Unknown>\n"
1313"Language-Team: Malayalam <ml@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "വിക്ഷേപികയില്‍ സ്ഥിരപ്പെടുത്തുക"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "വിക്ഷേപികാ സ്ഥിരപ്പെടുത്തല്‍ ഒഴിവാക്കുക"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "അടിയന്തിര വിളി"
8282msgid "OK"
8383msgstr ""
8484
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "സമീപകാല തിരയലുകള്‍"
88−
8985#: qml/Components/PassphraseLockscreen.qml:60
9086#, qt-format
9187msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr ""
107103msgid "See more"
108104msgstr ""
109105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111107msgid "See less"
112108msgstr ""
113109
@@ -115,6 +111,10 @@ msgstr ""
115111msgid "Recent"
116112msgstr ""
117113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr ""
117+
118118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119119msgid "More..."
120120msgstr ""
@@ -123,15 +123,15 @@ msgstr ""
123123msgid "Less..."
124124msgstr ""
125125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127127msgid "Rate this"
128128msgstr "ഇത് അവലോകനം ചെയ്യുക"
129129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131131msgid "Add a review"
132132msgstr "ഒരു അവലോകനം ചേര്‍ക്കുക"
133133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135135msgid "Send"
136136msgstr "അയയ്‌ക്കുക"
137137
@@ -167,11 +167,43 @@ msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
167167msgid "Please enter SIM PIN"
168168msgstr ""
169169
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr ""
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr ""
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr ""
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr ""
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr ""
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr ""
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr ""
201+
170202#: qml/Panel/SearchIndicator.qml:27
171203msgid "Search"
172204msgstr "തിരയുക"
173205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175207#, qt-format
176208msgid "Please enter %1"
177209msgstr "ദയവായി %1 നല്‍കുക"
po/mr.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/ms.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-17 09:05+0000\n"
1212"Last-Translator: abuyop <Unknown>\n"
1313"Language-Team: Malay <ms@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Kunci ke Pelancar"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Tanggalkan dari Pelancar"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "panggilan Kecemasan"
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Gelintar baru-baru ini"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "Kadar ini"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "Tambah ulasan"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "Hantar"
135135
@@ -165,11 +165,43 @@ msgstr "Tunjuk kata laluan"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Gelintar"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "Sila masukkan %1"
po/my.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Launcher တွင်ထားမည်"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Launcher မှဖြုတ်မည်"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "အရေးပေါ်ခေါ်မည်"
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "ပို့မည်"
135135
@@ -165,11 +165,43 @@ msgstr "စကားဝှက်ကိုပြ"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "ရှာဖွေ"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "%1ကိုရိုက်ထည့်ပါ"
po/nb.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-11 06:36+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-26 12:05+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"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Lås til oppstarter"
22+msgid "Pin shortcut"
23+msgstr "Fest snarvei"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Lås opp fra oppstarter"
26+msgid "Unpin shortcut"
27+msgstr "Fjern snarvei"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "Nødanrop"
8282msgid "OK"
8383msgstr "OK"
8484
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Nylige søk"
88−
8985#: qml/Components/PassphraseLockscreen.qml:60
9086#, qt-format
9187msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "FERDIG"
107103msgid "See more"
108104msgstr "Vis mer"
109105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111107msgid "See less"
112108msgstr "Vis mindre"
113109
@@ -115,6 +111,10 @@ msgstr "Vis mindre"
115111msgid "Recent"
116112msgstr "Nylig"
117113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "Vis alt"
117+
118118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119119msgid "More..."
120120msgstr "Mer …"
@@ -123,15 +123,15 @@ msgstr "Mer …"
123123msgid "Less..."
124124msgstr "Mindre …"
125125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127127msgid "Rate this"
128128msgstr "Vurder dette"
129129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131131msgid "Add a review"
132132msgstr "Skriv en anmeldelse"
133133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135135msgid "Send"
136136msgstr "Send"
137137
@@ -167,11 +167,43 @@ msgstr "Vis passord"
167167msgid "Please enter SIM PIN"
168168msgstr "Skriv inn PIN-koden til SIM-kortet"
169169
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "Trykk for å gå tilbake til anrop …"
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "Konferanse"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "I kø …"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "Laster ned"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "Satt på pause (trykk for å fortsette)"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "Avbrutt"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "Ferdig"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "Feilet. Trykk for å prøve på nytt"
201+
170202#: qml/Panel/SearchIndicator.qml:27
171203msgid "Search"
172204msgstr "Søk"
173205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175207#, qt-format
176208msgid "Please enter %1"
177209msgstr "Skriv inn %1"
po/nl.po+64−30
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-01-15 16:42+0000\n"
12−"Last-Translator: Hannie Dumoleyn <Unknown>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-27 19:12+0000\n"
12+"Last-Translator: rob <linuxned@gmail.com>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "In Starter vastzetten"
22+msgid "Pin shortcut"
23+msgstr "Snelkoppeling vastzetten"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Uit Starter verwijderen"
26+msgid "Unpin shortcut"
27+msgstr "Snelkoppeling losmaken"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -36,7 +36,7 @@ msgstr "Rechterrand"
3636
3737#: qml/Components/EdgeDemo.qml:114
3838msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "Veeg vanuit de rechterrand om het scherm te ontgrendelen"
4040
4141#: qml/Components/EdgeDemo.qml:145
4242msgid "Top edge"
@@ -44,7 +44,7 @@ msgstr "Bovenrand"
4444
4545#: qml/Components/EdgeDemo.qml:146
4646msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
47+msgstr "Veeg vanuit de bovenrand om de indicatoren te bekijken"
4848
4949#: qml/Components/EdgeDemo.qml:171
5050msgid "Close"
@@ -71,6 +71,8 @@ msgid ""
7171"You have now mastered the edge gestures and can start using the "
7272"phone<br><br>Tap on the screen to start"
7373msgstr ""
74+"Nu u de bewegingen vanuit de randen onder de knie heeft, kunt u beginnen met "
75+"het gebruiken van de telefoon<br><br>Tik op het scherm om te beginnen"
7476
7577#: qml/Components/Lockscreen.qml:214
7678msgid "Emergency Call"
@@ -78,11 +80,7 @@ msgstr "Noodoproep"
7880
7981#: qml/Components/Lockscreen.qml:231
8082msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Recente zoekopdrachten"
83+msgstr "Ok"
8684
8785#: qml/Components/PassphraseLockscreen.qml:60
8886#, qt-format
@@ -95,47 +93,51 @@ msgstr "Hallo"
9593
9694#: qml/Components/PinLockscreen.qml:198
9795msgid "CANCEL"
98−msgstr ""
96+msgstr "ANNULEREN"
9997
10098#: qml/Components/PinLockscreen.qml:216
10199msgid "DONE"
102−msgstr ""
100+msgstr "KLAAR"
103101
104102#: qml/Components/SeeMore.qml:35
105103msgid "See more"
106−msgstr ""
104+msgstr "Meer zien"
107105
108−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109107msgid "See less"
110−msgstr ""
108+msgstr "Minder zien"
111109
112110#: qml/Dash/DashApps.qml:37
113111msgid "Recent"
114−msgstr ""
112+msgstr "Recent"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "Alles zien"
115117
116118#: qml/Dash/Previews/PreviewActionCombo.qml:34
117119msgid "More..."
118−msgstr ""
120+msgstr "Meer…"
119121
120122#: qml/Dash/Previews/PreviewActionCombo.qml:34
121123msgid "Less..."
122−msgstr ""
124+msgstr "Minder…"
123125
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125127msgid "Rate this"
126128msgstr "Beoordeel dit"
127129
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129131msgid "Add a review"
130132msgstr "Voeg recensie toe"
131133
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133135msgid "Send"
134136msgstr "Versturen"
135137
136138#: qml/Greeter/Greeter.qml:157
137139msgid "Swipe to unlock"
138−msgstr ""
140+msgstr "Veeg om te ontgrendelen"
139141
140142#: qml/Hud/HudParametrizedActionsPage.qml:132
141143msgid "Confirm"
@@ -163,13 +165,45 @@ msgstr "Wachtwoord tonen"
163165
164166#: qml/Notifications/NotificationMenuItemFactory.qml:103
165167msgid "Please enter SIM PIN"
166−msgstr ""
168+msgstr "Voer SIM-pincode in"
169+
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "Tik om terug te keren naar gesprek…"
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "Groepsgesprek"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "In wachtrij…"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "Aan het downloaden"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "Gepauzeerd, tik om te hervatten"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "Geannuleerd"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "Klaar"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "Mislukt, tik om het opnieuw te proberen"
167201
168202#: qml/Panel/SearchIndicator.qml:27
169203msgid "Search"
170204msgstr "Zoeken"
171205
172−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
173207#, qt-format
174208msgid "Please enter %1"
175209msgstr "Voer %1 in"
po/pl.po+52−20
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-05-27 15:20+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-19 14:10+0000\n"
1212"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
1313"Language-Team: Polish <pl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Dodaj do panelu uruchamiania"
22+msgid "Pin shortcut"
23+msgstr "Przypnij skrót"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Usuń z panelu uruchamiania"
26+msgid "Unpin shortcut"
27+msgstr "Odepnij skrót"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "Telefon ratunkowy"
8282
8383#: qml/Components/Lockscreen.qml:231
8484msgid "OK"
85−msgstr ""
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Ostatnie wyszukiwania"
85+msgstr "OK"
9086
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
@@ -99,17 +95,17 @@ msgstr "Witaj"
9995
10096#: qml/Components/PinLockscreen.qml:198
10197msgid "CANCEL"
102−msgstr ""
98+msgstr "ANULUJ"
10399
104100#: qml/Components/PinLockscreen.qml:216
105101msgid "DONE"
106−msgstr ""
102+msgstr "ZROBIONE"
107103
108104#: qml/Components/SeeMore.qml:35
109105msgid "See more"
110106msgstr "Zobacz więcej"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "Zobacz mniej"
115111
@@ -117,6 +113,10 @@ msgstr "Zobacz mniej"
117113msgid "Recent"
118114msgstr "Ostatnio używane"
119115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122122msgstr "Więcej..."
@@ -125,15 +125,15 @@ msgstr "Więcej..."
125125msgid "Less..."
126126msgstr "Mniej..."
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "Oceń to"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "Dodaj recenzję"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "Wyślij"
139139
@@ -169,11 +169,43 @@ msgstr "Wyświetl hasło"
169169msgid "Please enter SIM PIN"
170170msgstr "Wprowadź kod PIN karty SIM"
171171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr ""
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "W kolejce..."
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Pobieranie"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Wstrzymano, kliknij by wznowić"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Anulowano"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Zakończono"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "Błąd, kliknij aby powtórzyć"
203+
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "Szukaj"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "Wprowadź %1"
po/pt.po+86−51
@@ -7,169 +7,204 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-01-14 19:18+0000\n"
12−"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 12:04+0000\n"
12+"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr ""
22+msgid "Pin shortcut"
23+msgstr "Afixar atalho"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
26+msgid "Unpin shortcut"
27+msgstr "Remover atalho"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
31−msgstr ""
31+msgstr "Saltar introdução"
3232
3333#: qml/Components/EdgeDemo.qml:113
3434msgid "Right edge"
35−msgstr ""
35+msgstr "Limite direito"
3636
3737#: qml/Components/EdgeDemo.qml:114
3838msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "Tente deslizar do limite direito para desbloquear o telefone"
4040
4141#: qml/Components/EdgeDemo.qml:145
4242msgid "Top edge"
43−msgstr ""
43+msgstr "Limite superior"
4444
4545#: qml/Components/EdgeDemo.qml:146
4646msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
47+msgstr "Tente deslizar do topo para aceder aos indicadores"
4848
4949#: qml/Components/EdgeDemo.qml:171
5050msgid "Close"
51−msgstr ""
51+msgstr "Fechar"
5252
5353#: qml/Components/EdgeDemo.qml:172
5454msgid "Swipe up again to close the settings screen"
55−msgstr ""
55+msgstr "Deslize de novo para cima para fechar o ecrã de definições"
5656
5757#: qml/Components/EdgeDemo.qml:199
5858msgid "Left edge"
59−msgstr ""
59+msgstr "Limite esquerdo"
6060
6161#: qml/Components/EdgeDemo.qml:200
6262msgid "Swipe from the left to reveal the launcher for quick access to apps"
6363msgstr ""
64+"Deslize da esquerda para mostrar o lançador para acesso rápido às aplicações"
6465
6566#: qml/Components/EdgeDemo.qml:227
6667msgid "Well done"
67−msgstr ""
68+msgstr "Muito bem"
6869
6970#: qml/Components/EdgeDemo.qml:228
7071msgid ""
7172"You have now mastered the edge gestures and can start using the "
7273"phone<br><br>Tap on the screen to start"
7374msgstr ""
75+"Já domina os gestos dos limites e pode começar a usar o "
76+"telefone<br><br>Toque no ecrã para começar"
7477
7578#: qml/Components/Lockscreen.qml:214
7679msgid "Emergency Call"
77−msgstr ""
80+msgstr "Chamada de emergência"
7881
7982#: qml/Components/Lockscreen.qml:231
8083msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
84+msgstr "OK"
8685
8786#: qml/Components/PassphraseLockscreen.qml:60
8887#, qt-format
8988msgid "Hello %1"
90−msgstr ""
89+msgstr "Olá %1"
9190
9291#: qml/Components/PassphraseLockscreen.qml:60
9392msgid "Hello"
94−msgstr ""
93+msgstr "Olá"
9594
9695#: qml/Components/PinLockscreen.qml:198
9796msgid "CANCEL"
98−msgstr ""
97+msgstr "CANCELAR"
9998
10099#: qml/Components/PinLockscreen.qml:216
101100msgid "DONE"
102−msgstr ""
101+msgstr "FEITO"
103102
104103#: qml/Components/SeeMore.qml:35
105104msgid "See more"
106−msgstr ""
105+msgstr "Ver mais"
107106
108−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109108msgid "See less"
110−msgstr ""
109+msgstr "Ver menos"
111110
112111#: qml/Dash/DashApps.qml:37
113112msgid "Recent"
114−msgstr ""
113+msgstr "Recentes"
114+
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr "Ver todos"
115118
116119#: qml/Dash/Previews/PreviewActionCombo.qml:34
117120msgid "More..."
118−msgstr ""
121+msgstr "Mais..."
119122
120123#: qml/Dash/Previews/PreviewActionCombo.qml:34
121124msgid "Less..."
122−msgstr ""
125+msgstr "Menos..."
123126
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125128msgid "Rate this"
126−msgstr ""
129+msgstr "Classifique isto"
127130
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129132msgid "Add a review"
130−msgstr ""
133+msgstr "Adicione uma crítica"
131134
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133136msgid "Send"
134−msgstr ""
137+msgstr "Enviar"
135138
136139#: qml/Greeter/Greeter.qml:157
137140msgid "Swipe to unlock"
138−msgstr ""
141+msgstr "Deslize para desbloquear"
139142
140143#: qml/Hud/HudParametrizedActionsPage.qml:132
141144msgid "Confirm"
142−msgstr ""
145+msgstr "Confirmar"
143146
144147#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145148msgid "Type or say a command"
146−msgstr ""
149+msgstr "Digite ou diga um comando"
147150
148151#: qml/Hud/Hud.qml:84
149152msgid "Loading. Please Wait..."
150−msgstr ""
153+msgstr "A carregar. Aguarde por favor..."
151154
152155#: qml/Hud/Hud.qml:89
153156msgid "Speak Now..."
154−msgstr ""
157+msgstr "Fale agora..."
155158
156159#: qml/Hud/Hud.qml:94
157160msgid "Speaking..."
158−msgstr ""
161+msgstr "A falar..."
159162
160163#: qml/Notifications/NotificationMenuItemFactory.qml:91
161164msgid "Show password"
162−msgstr ""
165+msgstr "Mostrar palavra-passe"
163166
164167#: qml/Notifications/NotificationMenuItemFactory.qml:103
165168msgid "Please enter SIM PIN"
166−msgstr ""
169+msgstr "Por favor insira o PIN"
170+
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
173+msgstr "Tocar para ligar de volta..."
174+
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr "Conferência"
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr "Em fila..."
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr "A transferir"
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr "Parado, toque para continuar"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr "Cancelado"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr "Concluído"
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr "Falhou, toque para repetir"
167202
168203#: qml/Panel/SearchIndicator.qml:27
169204msgid "Search"
170−msgstr ""
205+msgstr "Procurar"
171206
172−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
173208#, qt-format
174209msgid "Please enter %1"
175−msgstr ""
210+msgstr "Por favor, introduza %1"
po/pt_BR.po+52−20
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-05-15 14:31+0000\n"
12−"Last-Translator: Rafael Neri <Unknown>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-17 05:46+0000\n"
12+"Last-Translator: Tiago Hillebrandt <tiagohillebrandt@gmail.com>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Bloquear no lançador"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Desbloquear do lançador"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "Chamada de emergência"
8282
8383#: qml/Components/Lockscreen.qml:231
8484msgid "OK"
85−msgstr ""
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Pesquisas recentes"
85+msgstr "OK"
9086
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
@@ -99,7 +95,7 @@ msgstr "Olá"
9995
10096#: qml/Components/PinLockscreen.qml:198
10197msgid "CANCEL"
102−msgstr ""
98+msgstr "CANCELAR"
10399
104100#: qml/Components/PinLockscreen.qml:216
105101msgid "DONE"
@@ -109,7 +105,7 @@ msgstr ""
109105msgid "See more"
110106msgstr "Ver mais"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "Ver menos"
115111
@@ -117,6 +113,10 @@ msgstr "Ver menos"
117113msgid "Recent"
118114msgstr "Recentes"
119115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122122msgstr "Mais..."
@@ -125,15 +125,15 @@ msgstr "Mais..."
125125msgid "Less..."
126126msgstr "Menos..."
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "Avaliar isto"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "Adicionar uma análise"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "Enviar"
139139
@@ -169,11 +169,43 @@ msgstr "Exibir senha"
169169msgid "Please enter SIM PIN"
170170msgstr "Por favor, digite o PIN do cartão SIM"
171171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr ""
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Baixando"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Cancelado"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr ""
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr ""
203+
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "Pesquisar"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "Por favor, digite %1"
po/ro.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-06-27 07:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Căutări recente"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Căutare"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/ru.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-05-15 12:57+0000\n"
1212"Last-Translator: Zonov Roman <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Закрепить на панели"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Убрать с панели"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Экстренный вызов"
8787msgid "OK"
8888msgstr ""
8989
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Последние поисковые запросы"
93−
9490#: qml/Components/PassphraseLockscreen.qml:60
9591#, qt-format
9692msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr ""
112108msgid "See more"
113109msgstr "Подробнее"
114110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116112msgid "See less"
117113msgstr "Вкратце"
118114
@@ -120,6 +116,10 @@ msgstr "Вкратце"
120116msgid "Recent"
121117msgstr "Недавние"
122118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr ""
122+
123123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124124msgid "More..."
125125msgstr "Ещё..."
@@ -128,15 +128,15 @@ msgstr "Ещё..."
128128msgid "Less..."
129129msgstr "Меньше..."
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132132msgid "Rate this"
133133msgstr "Оцените это"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136136msgid "Add a review"
137137msgstr "Добавьте отзыв"
138138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140140msgid "Send"
141141msgstr "Отправить"
142142
@@ -172,11 +172,43 @@ msgstr "Показать пароль"
172172msgid "Please enter SIM PIN"
173173msgstr "Введите PIN код"
174174
175+#: qml/Panel/ActiveCallHint.qml:77
176+msgid "Tap to return to call..."
177+msgstr ""
178+
179+#: qml/Panel/ActiveCallHint.qml:90
180+msgid "Conference"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:583
184+msgid "In queue…"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:587
188+msgid "Downloading"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:589
192+msgid "Paused, tap to resume"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:591
196+msgid "Canceled"
197+msgstr ""
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:593
200+msgid "Finished"
201+msgstr ""
202+
203+#: qml/Panel/Indicators/MenuItemFactory.qml:595
204+msgid "Failed, tap to retry"
205+msgstr ""
206+
175207#: qml/Panel/SearchIndicator.qml:27
176208msgid "Search"
177209msgstr "Поиск"
178210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180212#, qt-format
181213msgid "Please enter %1"
182214msgstr "Пожалуйста, введите %1"
po/shn.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-10-07 11:46+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Shan <shn@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/si.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/sl.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-23 09:29+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-28 12:32+0000\n"
1212"Last-Translator: Damir Jerovšek <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-24 06:33+0000\n"
18−"X-Generator: Launchpad (build 17065)\n"
17+"X-Launchpad-Export-Date: 2014-07-29 06:54+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Zakleni na zaganjalnik"
22+msgid "Pin shortcut"
23+msgstr "Pripni bližnjico"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Odkleni z zaganjalnika"
26+msgid "Unpin shortcut"
27+msgstr "Odpni bližnjico"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -84,10 +84,6 @@ msgstr "Klic v sili"
8484msgid "OK"
8585msgstr "V REDU"
8686
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Nedavna iskanja"
90−
9187#: qml/Components/PassphraseLockscreen.qml:60
9288#, qt-format
9389msgid "Hello %1"
@@ -109,7 +105,7 @@ msgstr "KONČANO"
109105msgid "See more"
110106msgstr "Pokaži več"
111107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113109msgid "See less"
114110msgstr "Pokaži manj"
115111
@@ -117,6 +113,10 @@ msgstr "Pokaži manj"
117113msgid "Recent"
118114msgstr "Nedavno"
119115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "More..."
122122msgstr "Več ..."
@@ -125,15 +125,15 @@ msgstr "Več ..."
125125msgid "Less..."
126126msgstr "Manj ..."
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129129msgid "Rate this"
130130msgstr "Ocenite"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133133msgid "Add a review"
134134msgstr "Dodaj oceno"
135135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137137msgid "Send"
138138msgstr "Pošlji"
139139
@@ -169,11 +169,43 @@ msgstr "Pokaži geslo"
169169msgid "Please enter SIM PIN"
170170msgstr "Vnesite PIN kartice SIM"
171171
172+#: qml/Panel/ActiveCallHint.qml:77
173+msgid "Tap to return to call..."
174+msgstr "Tapnite za vrnitev v klic ..."
175+
176+#: qml/Panel/ActiveCallHint.qml:90
177+msgid "Conference"
178+msgstr "Konferenca"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:583
181+msgid "In queue…"
182+msgstr "V vrsti ..."
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:587
185+msgid "Downloading"
186+msgstr "Prejemanje"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:589
189+msgid "Paused, tap to resume"
190+msgstr "Premor, tapnite za nadaljevanje"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:591
193+msgid "Canceled"
194+msgstr "Preklicano"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:593
197+msgid "Finished"
198+msgstr "Končano"
199+
200+#: qml/Panel/Indicators/MenuItemFactory.qml:595
201+msgid "Failed, tap to retry"
202+msgstr "Spodletelo, tapnite za ponovni poskus"
203+
172204#: qml/Panel/SearchIndicator.qml:27
173205msgid "Search"
174206msgstr "Iskanje"
175207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177209#, qt-format
178210msgid "Please enter %1"
179211msgstr "Vnesite %1"
po/sq.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-15 13:51+0000\n"
1212"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
1313"Language-Team: Albanian <sq@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:50+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -81,10 +81,6 @@ msgstr ""
8181msgid "OK"
8282msgstr ""
8383
84−#: qml/Components/PageHeader.qml:365
85−msgid "Recent searches"
86−msgstr ""
87−
8884#: qml/Components/PassphraseLockscreen.qml:60
8985#, qt-format
9086msgid "Hello %1"
@@ -106,7 +102,7 @@ msgstr ""
106102msgid "See more"
107103msgstr ""
108104
109−#: qml/Components/SeeMore.qml:58
105+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
110106msgid "See less"
111107msgstr ""
112108
@@ -114,6 +110,10 @@ msgstr ""
114110msgid "Recent"
115111msgstr ""
116112
113+#: qml/Dash/GenericScopeView.qml:330
114+msgid "See all"
115+msgstr ""
116+
117117#: qml/Dash/Previews/PreviewActionCombo.qml:34
118118msgid "More..."
119119msgstr ""
@@ -122,15 +122,15 @@ msgstr ""
122122msgid "Less..."
123123msgstr ""
124124
125−#: qml/Dash/Previews/PreviewRatingInput.qml:82
125+#: qml/Dash/Previews/PreviewRatingInput.qml:81
126126msgid "Rate this"
127127msgstr "Vlerësoje këtë"
128128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:128
129+#: qml/Dash/Previews/PreviewRatingInput.qml:126
130130msgid "Add a review"
131131msgstr "Shto një rishikim"
132132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:168
133+#: qml/Dash/Previews/PreviewRatingInput.qml:166
134134msgid "Send"
135135msgstr ""
136136
@@ -166,11 +166,43 @@ msgstr ""
166166msgid "Please enter SIM PIN"
167167msgstr ""
168168
169+#: qml/Panel/ActiveCallHint.qml:77
170+msgid "Tap to return to call..."
171+msgstr ""
172+
173+#: qml/Panel/ActiveCallHint.qml:90
174+msgid "Conference"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:583
178+msgid "In queue…"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:587
182+msgid "Downloading"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:589
186+msgid "Paused, tap to resume"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:591
190+msgid "Canceled"
191+msgstr ""
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:593
194+msgid "Finished"
195+msgstr ""
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:595
198+msgid "Failed, tap to retry"
199+msgstr ""
200+
169201#: qml/Panel/SearchIndicator.qml:27
170202msgid "Search"
171203msgstr ""
172204
173−#: qml/Shell.qml:334
205+#: qml/Shell.qml:359
174206#, qt-format
175207msgid "Please enter %1"
176208msgstr ""
po/sr.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2013-06-27 09:19+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Serbian <sr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Скорашње претраге"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Претрага"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/sv.po+79−44
@@ -1,34 +1,35 @@
11# Swedish translation for unity
2−# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
2+# Copyright © 2013-2014 Rosetta Contributors and Canonical Ltd 2013-2014
33# This file is distributed under the same license as the unity package.
4−# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
4+# Josef Andersson <josef.andersson@fripost.org>, 2014.
55#
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-07 19:14+0000\n"
12−"Last-Translator: mikasjoman <Unknown>\n"
13−"Language-Team: Swedish <sv@li.org>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-25 14:27+0000\n"
12+"Last-Translator: Josef Andersson <Unknown>\n"
13+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
19+"Language: sv\n"
1920
2021#: plugins/Unity/Launcher/launcheritem.cpp:43
2122#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr ""
23+msgid "Pin shortcut"
24+msgstr "Fäst genväg"
2425
2526#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
27+msgid "Unpin shortcut"
28+msgstr "Släpp genväg"
2829
2930#: qml/Components/EdgeDemoOverlay.qml:151
3031msgid "Skip intro"
31−msgstr ""
32+msgstr "Hoppa över introduktion"
3233
3334#: qml/Components/EdgeDemo.qml:113
3435msgid "Right edge"
@@ -36,7 +37,7 @@ msgstr "Högerkant"
3637
3738#: qml/Components/EdgeDemo.qml:114
3839msgid "Try swiping from the right edge to unlock the phone"
39−msgstr "Dra med fingret från höger för att låsa upp telefonen"
40+msgstr "Svep från höger för att låsa upp telefonen"
4041
4142#: qml/Components/EdgeDemo.qml:145
4243msgid "Top edge"
@@ -44,7 +45,7 @@ msgstr "Överkant"
4445
4546#: qml/Components/EdgeDemo.qml:146
4647msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
48+msgstr "Svep från överkanten för att komma åt indikatorerna"
4849
4950#: qml/Components/EdgeDemo.qml:171
5051msgid "Close"
@@ -52,7 +53,7 @@ msgstr "Stäng"
5253
5354#: qml/Components/EdgeDemo.qml:172
5455msgid "Swipe up again to close the settings screen"
55−msgstr ""
56+msgstr "Svep upp igen för att stänga inställningsfönstret"
5657
5758#: qml/Components/EdgeDemo.qml:199
5859msgid "Left edge"
@@ -60,17 +61,19 @@ msgstr "Vänsterkant"
6061
6162#: qml/Components/EdgeDemo.qml:200
6263msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr ""
64+msgstr "Svep från vänster för att visa programstartaren"
6465
6566#: qml/Components/EdgeDemo.qml:227
6667msgid "Well done"
67−msgstr ""
68+msgstr "Bra gjort"
6869
6970#: qml/Components/EdgeDemo.qml:228
7071msgid ""
7172"You have now mastered the edge gestures and can start using the "
7273"phone<br><br>Tap on the screen to start"
7374msgstr ""
75+"Du har nu bemästrat kantgesterna och kan börja använda "
76+"telefonen<br><br>Tryck på skärmen för att starta"
7477
7578#: qml/Components/Lockscreen.qml:214
7679msgid "Emergency Call"
@@ -78,64 +81,64 @@ msgstr "Nödsamtal"
7881
7982#: qml/Components/Lockscreen.qml:231
8083msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
84+msgstr "Ok"
8685
8786#: qml/Components/PassphraseLockscreen.qml:60
8887#, qt-format
8988msgid "Hello %1"
90−msgstr ""
89+msgstr "Hej %1"
9190
9291#: qml/Components/PassphraseLockscreen.qml:60
9392msgid "Hello"
94−msgstr ""
93+msgstr "Hej"
9594
9695#: qml/Components/PinLockscreen.qml:198
9796msgid "CANCEL"
98−msgstr ""
97+msgstr "AVBRYT"
9998
10099#: qml/Components/PinLockscreen.qml:216
101100msgid "DONE"
102−msgstr ""
101+msgstr "KLAR"
103102
104103#: qml/Components/SeeMore.qml:35
105104msgid "See more"
106−msgstr ""
105+msgstr "Se mer"
107106
108−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109108msgid "See less"
110−msgstr ""
109+msgstr "Se mindre"
111110
112111#: qml/Dash/DashApps.qml:37
113112msgid "Recent"
114−msgstr ""
113+msgstr "Senaste"
114+
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr "Visa alla"
115118
116119#: qml/Dash/Previews/PreviewActionCombo.qml:34
117120msgid "More..."
118−msgstr ""
121+msgstr "Mer…"
119122
120123#: qml/Dash/Previews/PreviewActionCombo.qml:34
121124msgid "Less..."
122−msgstr ""
125+msgstr "Mindre…"
123126
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125128msgid "Rate this"
126−msgstr ""
129+msgstr "Betygsätt detta"
127130
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129132msgid "Add a review"
130133msgstr "Lägg till en recension"
131134
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133136msgid "Send"
134−msgstr ""
137+msgstr "Skicka"
135138
136139#: qml/Greeter/Greeter.qml:157
137140msgid "Swipe to unlock"
138−msgstr ""
141+msgstr "Svep för att låsa upp"
139142
140143#: qml/Hud/HudParametrizedActionsPage.qml:132
141144msgid "Confirm"
@@ -147,15 +150,15 @@ msgstr "Skriv eller tala in ett kommando"
147150
148151#: qml/Hud/Hud.qml:84
149152msgid "Loading. Please Wait..."
150−msgstr "Laddar. Var god vänta..."
153+msgstr "Läser in. Var god vänta…"
151154
152155#: qml/Hud/Hud.qml:89
153156msgid "Speak Now..."
154−msgstr "Tala nu..."
157+msgstr "Tala nu…"
155158
156159#: qml/Hud/Hud.qml:94
157160msgid "Speaking..."
158−msgstr "Talar..."
161+msgstr "Talar…"
159162
160163#: qml/Notifications/NotificationMenuItemFactory.qml:91
161164msgid "Show password"
@@ -163,13 +166,45 @@ msgstr "Visa lösenord"
163166
164167#: qml/Notifications/NotificationMenuItemFactory.qml:103
165168msgid "Please enter SIM PIN"
166−msgstr ""
169+msgstr "Ange SIM PIN-kod"
170+
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
173+msgstr "Tryck för att återgå till samtal..."
174+
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr "Konferens"
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr "I kö…"
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr "Hämtar"
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr "Pausad, tryck för att fortsätta"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr "Avbröt"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr "Klart"
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr "Misslyckades, tryck för att försöka igen"
167202
168203#: qml/Panel/SearchIndicator.qml:27
169204msgid "Search"
170205msgstr "Sök"
171206
172−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
173208#, qt-format
174209msgid "Please enter %1"
175210msgstr "Vänligen fyll i %1"
po/sw.po+47−15
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-14 19:28+0000\n"
12−"Last-Translator: Damas Mlabwa <Unknown>\n"
12+"Last-Translator: Damas <Unknown>\n"
1313"Language-Team: Swahili <sw@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "Tuma"
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "Tafuta"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/ta.po+46−14
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919"Language: ta\n"
2020
2121#: plugins/Unity/Launcher/launcheritem.cpp:43
2222#: plugins/Unity/Launcher/launcheritem.cpp:73
23−msgid "Lock to Launcher"
23+msgid "Pin shortcut"
2424msgstr ""
2525
2626#: plugins/Unity/Launcher/launcheritem.cpp:73
27−msgid "Unlock from Launcher"
27+msgid "Unpin shortcut"
2828msgstr ""
2929
3030#: qml/Components/EdgeDemoOverlay.qml:151
@@ -83,10 +83,6 @@ msgstr "அவசர அழைப்பு"
8383msgid "OK"
8484msgstr ""
8585
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "கடையாக தேடப்பட்டவைகள்"
89−
9086#: qml/Components/PassphraseLockscreen.qml:60
9187#, qt-format
9288msgid "Hello %1"
@@ -108,7 +104,7 @@ msgstr ""
108104msgid "See more"
109105msgstr ""
110106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112108msgid "See less"
113109msgstr ""
114110
@@ -116,6 +112,10 @@ msgstr ""
116112msgid "Recent"
117113msgstr ""
118114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120120msgid "More..."
121121msgstr ""
@@ -124,15 +124,15 @@ msgstr ""
124124msgid "Less..."
125125msgstr ""
126126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128128msgid "Rate this"
129129msgstr "இதை மதிப்பிடு"
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132132msgid "Add a review"
133133msgstr "ஒரு பரிசீலனையை சேர்"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136136msgid "Send"
137137msgstr "அனுப்பு"
138138
@@ -168,11 +168,43 @@ msgstr ""
168168msgid "Please enter SIM PIN"
169169msgstr ""
170170
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
173+msgstr ""
174+
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr ""
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr ""
202+
171203#: qml/Panel/SearchIndicator.qml:27
172204msgid "Search"
173205msgstr "தெடு"
174206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176208#, qt-format
177209msgid "Please enter %1"
178210msgstr "தயவுச்செய்து %1 உள்ளிடு"
po/te.po+74−42
@@ -7,40 +7,40 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2013-06-27 09:57+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-19 10:04+0000\n"
12+"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
31−msgstr ""
31+msgstr "పరిచయాన్ని దాటవేయి"
3232
3333#: qml/Components/EdgeDemo.qml:113
3434msgid "Right edge"
35−msgstr ""
35+msgstr "కుడి అంచు"
3636
3737#: qml/Components/EdgeDemo.qml:114
3838msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "ఫోను తాళంతీయుటకు కుడి అంచు నుండి స్వైప్ చేయ ప్రయత్నించండి"
4040
4141#: qml/Components/EdgeDemo.qml:145
4242msgid "Top edge"
43−msgstr ""
43+msgstr "పై అంచు"
4444
4545#: qml/Components/EdgeDemo.qml:146
4646msgid "Try swiping from the top edge to access the indicators"
@@ -48,15 +48,15 @@ msgstr ""
4848
4949#: qml/Components/EdgeDemo.qml:171
5050msgid "Close"
51−msgstr ""
51+msgstr "మూసివేయి"
5252
5353#: qml/Components/EdgeDemo.qml:172
5454msgid "Swipe up again to close the settings screen"
55−msgstr ""
55+msgstr "అమరికల తెరను మూసివేయుటకు మరలా పైకి స్వైప్ చేయండి"
5656
5757#: qml/Components/EdgeDemo.qml:199
5858msgid "Left edge"
59−msgstr ""
59+msgstr "ఎడమ అంచు"
6060
6161#: qml/Components/EdgeDemo.qml:200
6262msgid "Swipe from the left to reveal the launcher for quick access to apps"
@@ -64,7 +64,7 @@ msgstr ""
6464
6565#: qml/Components/EdgeDemo.qml:227
6666msgid "Well done"
67−msgstr ""
67+msgstr "బాగా చేశారు"
6868
6969#: qml/Components/EdgeDemo.qml:228
7070msgid ""
@@ -74,72 +74,72 @@ msgstr ""
7474
7575#: qml/Components/Lockscreen.qml:214
7676msgid "Emergency Call"
77−msgstr ""
77+msgstr "అత్యవసర పిలుపు"
7878
7979#: qml/Components/Lockscreen.qml:231
8080msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
81+msgstr "సరే"
8682
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
90−msgstr ""
86+msgstr "హలో %1"
9187
9288#: qml/Components/PassphraseLockscreen.qml:60
9389msgid "Hello"
94−msgstr ""
90+msgstr "హలో"
9591
9692#: qml/Components/PinLockscreen.qml:198
9793msgid "CANCEL"
98−msgstr ""
94+msgstr "రద్దుచేయి"
9995
10096#: qml/Components/PinLockscreen.qml:216
10197msgid "DONE"
102−msgstr ""
98+msgstr "పూర్తయ్యింది"
10399
104100#: qml/Components/SeeMore.qml:35
105101msgid "See more"
106−msgstr ""
102+msgstr "మరింత చూడండి"
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
112108#: qml/Dash/DashApps.qml:37
113109msgid "Recent"
110+msgstr "ఇటీవలివి"
111+
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114114msgstr ""
115115
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118−msgstr ""
118+msgstr "మరిన్ని..."
119119
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130−msgstr ""
130+msgstr "ఒక సమీక్షను వ్రాయండి"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134−msgstr ""
134+msgstr "పంపు"
135135
136136#: qml/Greeter/Greeter.qml:157
137137msgid "Swipe to unlock"
138−msgstr ""
138+msgstr "తాళంతీయుటకు గీకండి"
139139
140140#: qml/Hud/HudParametrizedActionsPage.qml:132
141141msgid "Confirm"
142−msgstr ""
142+msgstr "నిర్ధారించండి"
143143
144144#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145145msgid "Type or say a command"
@@ -147,29 +147,61 @@ msgstr ""
147147
148148#: qml/Hud/Hud.qml:84
149149msgid "Loading. Please Wait..."
150−msgstr ""
150+msgstr "లోడవుతోంది. దయచేసి వేచివుండండి..."
151151
152152#: qml/Hud/Hud.qml:89
153153msgid "Speak Now..."
154−msgstr ""
154+msgstr "ఇప్పుడు మాట్లాడండి..."
155155
156156#: qml/Hud/Hud.qml:94
157157msgid "Speaking..."
158−msgstr ""
158+msgstr "మాట్లాడుతున్నారు..."
159159
160160#: qml/Notifications/NotificationMenuItemFactory.qml:91
161161msgid "Show password"
162−msgstr ""
162+msgstr "సంకేతపదాన్ని చూపించు"
163163
164164#: qml/Notifications/NotificationMenuItemFactory.qml:103
165165msgid "Please enter SIM PIN"
166+msgstr "దయచేసి సిమ్ పిన్ ఇవ్వండి"
167+
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr "దింపుకుంటున్నది"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr "రద్దుచేయబడింది"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr "పూర్తయింది"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
166198msgstr ""
167199
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170−msgstr ""
202+msgstr "వెతుకు"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175−msgstr ""
207+msgstr "దయచేసి %1 ప్రవేశపెట్టండి"
po/tr.po+52−20
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-05-19 12:52+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-16 17:58+0000\n"
1212"Last-Translator: Volkan Gezer <Unknown>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Başlatıcıya Sabitle"
22+msgid "Pin shortcut"
23+msgstr "Kısayolu iğnele"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Başlatıcıdan Ayır"
26+msgid "Unpin shortcut"
27+msgstr "Kısayol iğnesini kaldır"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -81,11 +81,7 @@ msgstr "Acil Arama"
8181
8282#: qml/Components/Lockscreen.qml:231
8383msgid "OK"
84−msgstr ""
85−
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "Son aramalar"
84+msgstr "Tamam"
8985
9086#: qml/Components/PassphraseLockscreen.qml:60
9187#, qt-format
@@ -98,17 +94,17 @@ msgstr "Merhaba"
9894
9995#: qml/Components/PinLockscreen.qml:198
10096msgid "CANCEL"
101−msgstr ""
97+msgstr "İPTAL"
10298
10399#: qml/Components/PinLockscreen.qml:216
104100msgid "DONE"
105−msgstr ""
101+msgstr "BİTTİ"
106102
107103#: qml/Components/SeeMore.qml:35
108104msgid "See more"
109105msgstr "Daha fazlası"
110106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112108msgid "See less"
113109msgstr "Daha azını gör"
114110
@@ -116,6 +112,10 @@ msgstr "Daha azını gör"
116112msgid "Recent"
117113msgstr "En son"
118114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120120msgid "More..."
121121msgstr "Daha fazlası..."
@@ -124,15 +124,15 @@ msgstr "Daha fazlası..."
124124msgid "Less..."
125125msgstr "Daha az.."
126126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128128msgid "Rate this"
129129msgstr "Oyla"
130130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132132msgid "Add a review"
133133msgstr "Bir inceleme ekle"
134134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136136msgid "Send"
137137msgstr "Gönder"
138138
@@ -168,11 +168,43 @@ msgstr "Parolayı göster"
168168msgid "Please enter SIM PIN"
169169msgstr "Lütfen SIM PIN'inizi girin"
170170
171+#: qml/Panel/ActiveCallHint.qml:77
172+msgid "Tap to return to call..."
173+msgstr ""
174+
175+#: qml/Panel/ActiveCallHint.qml:90
176+msgid "Conference"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:583
180+msgid "In queue…"
181+msgstr "Beklemede..."
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:587
184+msgid "Downloading"
185+msgstr "İndiriliyor"
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:589
188+msgid "Paused, tap to resume"
189+msgstr "Duraklatıldı, devam etmek için dokunun"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:591
192+msgid "Canceled"
193+msgstr "İptal edildi"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:593
196+msgid "Finished"
197+msgstr "Bitti"
198+
199+#: qml/Panel/Indicators/MenuItemFactory.qml:595
200+msgid "Failed, tap to retry"
201+msgstr "Başarısız, yeniden denemek için dokunun"
202+
171203#: qml/Panel/SearchIndicator.qml:27
172204msgid "Search"
173205msgstr "Ara"
174206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176208#, qt-format
177209msgid "Please enter %1"
178210msgstr "Lütfen %1 girin"
po/ug.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-13 21:07+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-29 04:06+0000\n"
1212"Last-Translator: Gheyret T.Kenji <Unknown>\n"
1313"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "ئىجراچىغا سولىۋەت"
22+msgid "Pin shortcut"
23+msgstr "تېزلەتمىنى قوي"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "ئىجراچىدىن چىقار"
26+msgid "Unpin shortcut"
27+msgstr "تېزلەتمىنى ئېلىۋەت"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "جىددىي تېلېفون"
8282msgid "OK"
8383msgstr "تامام"
8484
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "يېقىنقى ئىزدەشلەر"
88−
8985#: qml/Components/PassphraseLockscreen.qml:60
9086#, qt-format
9187msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "تامام"
107103msgid "See more"
108104msgstr "جىقراق كۆرۈش"
109105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111107msgid "See less"
112108msgstr "ئازراق كۆرۈش"
113109
@@ -115,6 +111,10 @@ msgstr "ئازراق كۆرۈش"
115111msgid "Recent"
116112msgstr "يېقىنقى"
117113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "ھەممىنى كۆرۈش…"
117+
118118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119119msgid "More..."
120120msgstr "تېخىمۇ كۆپ…"
@@ -123,15 +123,15 @@ msgstr "تېخىمۇ كۆپ…"
123123msgid "Less..."
124124msgstr "ئازراق..."
125125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127127msgid "Rate this"
128128msgstr "بۇنى باھالاڭ"
129129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131131msgid "Add a review"
132132msgstr "باھا قوشۇش"
133133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135135msgid "Send"
136136msgstr "ئەۋەت"
137137
@@ -167,11 +167,43 @@ msgstr "ئىم كۆرسەت"
167167msgid "Please enter SIM PIN"
168168msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
169169
170+#: qml/Panel/ActiveCallHint.qml:77
171+msgid "Tap to return to call..."
172+msgstr "سۆزلىشىشكە قايتىش ئۈچۈن چېكىڭ…"
173+
174+#: qml/Panel/ActiveCallHint.qml:90
175+msgid "Conference"
176+msgstr "يىغىن"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:583
179+msgid "In queue…"
180+msgstr "قاتاردا…"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:587
183+msgid "Downloading"
184+msgstr "چۈشۈرۈۋاتىدۇ"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:589
187+msgid "Paused, tap to resume"
188+msgstr "توختىتىلغان، چەكسە داۋاملىشىدۇ"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:591
191+msgid "Canceled"
192+msgstr "قالدۇرۇۋېتىلدى"
193+
194+#: qml/Panel/Indicators/MenuItemFactory.qml:593
195+msgid "Finished"
196+msgstr "تاماملاندى"
197+
198+#: qml/Panel/Indicators/MenuItemFactory.qml:595
199+msgid "Failed, tap to retry"
200+msgstr "مەغلۇپ بولدى، چېكىپ قايتا سىناڭ"
201+
170202#: qml/Panel/SearchIndicator.qml:27
171203msgid "Search"
172204msgstr "ئىزدە"
173205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175207#, qt-format
176208msgid "Please enter %1"
177209msgstr "%1 نى كىرگۈزۈڭ"
po/uk.po+49−17
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-08 19:09+0000\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-29 07:53+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "Зафіксувати на панелі запуску"
22+msgid "Pin shortcut"
23+msgstr "Заблокувати кнопку"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "Від’єднати від панелі запуску"
26+msgid "Unpin shortcut"
27+msgstr "Розблокувати кнопку"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -85,10 +85,6 @@ msgstr "Терміновий виклик"
8585msgid "OK"
8686msgstr "Гаразд"
8787
88−#: qml/Components/PageHeader.qml:365
89−msgid "Recent searches"
90−msgstr "Нещодавні пошуки"
91−
9288#: qml/Components/PassphraseLockscreen.qml:60
9389#, qt-format
9490msgid "Hello %1"
@@ -110,7 +106,7 @@ msgstr "Виконано"
110106msgid "See more"
111107msgstr "Докладніше"
112108
113−#: qml/Components/SeeMore.qml:58
109+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
114110msgid "See less"
115111msgstr "Стисліше"
116112
@@ -118,6 +114,10 @@ msgstr "Стисліше"
118114msgid "Recent"
119115msgstr "Нещодавні"
120116
117+#: qml/Dash/GenericScopeView.qml:330
118+msgid "See all"
119+msgstr "Детальніше"
120+
121121#: qml/Dash/Previews/PreviewActionCombo.qml:34
122122msgid "More..."
123123msgstr "Більше…"
@@ -126,15 +126,15 @@ msgstr "Більше…"
126126msgid "Less..."
127127msgstr "Менше..."
128128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:82
129+#: qml/Dash/Previews/PreviewRatingInput.qml:81
130130msgid "Rate this"
131131msgstr "Оцінити"
132132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:128
133+#: qml/Dash/Previews/PreviewRatingInput.qml:126
134134msgid "Add a review"
135135msgstr "Додати рецензію"
136136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:168
137+#: qml/Dash/Previews/PreviewRatingInput.qml:166
138138msgid "Send"
139139msgstr "Надіслати"
140140
@@ -170,11 +170,43 @@ msgstr "Показати пароль"
170170msgid "Please enter SIM PIN"
171171msgstr "Введіть PIN-код SIM-картки"
172172
173+#: qml/Panel/ActiveCallHint.qml:77
174+msgid "Tap to return to call..."
175+msgstr "Торкніться, щоб повернутися до дзвінка…"
176+
177+#: qml/Panel/ActiveCallHint.qml:90
178+msgid "Conference"
179+msgstr "Конференція"
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:583
182+msgid "In queue…"
183+msgstr "У черзі…"
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:587
186+msgid "Downloading"
187+msgstr "Отримуємо"
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:589
190+msgid "Paused, tap to resume"
191+msgstr "Призупинено, торкніться, щоб поновити"
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:591
194+msgid "Canceled"
195+msgstr "Скасовано"
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:593
198+msgid "Finished"
199+msgstr "Завершено"
200+
201+#: qml/Panel/Indicators/MenuItemFactory.qml:595
202+msgid "Failed, tap to retry"
203+msgstr "Помилка, торкніться, щоб повторити спробу"
204+
173205#: qml/Panel/SearchIndicator.qml:27
174206msgid "Search"
175207msgstr "Пошук"
176208
177−#: qml/Shell.qml:334
209+#: qml/Shell.qml:359
178210#, qt-format
179211msgid "Please enter %1"
180212msgstr "Будь ласка, введіть %1"
po/unity8.pot+45−13
@@ -8,22 +8,22 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1515"Language: \n"
1616"MIME-Version: 1.0\n"
17−"Content-Type: text/plain; charset=CHARSET\n"
17+"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/update-unity-pot+2−1
@@ -22,6 +22,7 @@ xgettext \
2222 --keyword=tr \
2323 --keyword=tr:1,2 \
2424 --package-name="unity8" \
25− --copyright-holder="Canonical Ltd."
25+ --copyright-holder="Canonical Ltd." \
26+ --from-code="UTF-8"
2627
2728echo "$PROGNAME: $PO_DIR/auto-generated.pot updated"
po/vi.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/xh.po+46−14
@@ -7,23 +7,23 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
2323msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
2727msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr ""
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr ""
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr ""
135135
@@ -165,11 +165,43 @@ msgstr ""
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr ""
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr ""
po/zh_CN.po+50−18
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-06-12 08:55+0000\n"
12−"Last-Translator: Shengjing Zhu <Unknown>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-29 02:48+0000\n"
12+"Last-Translator: Luo Lei <luolei@ubuntukylin.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "固定到启动器"
22+msgid "Pin shortcut"
23+msgstr "固定快捷方式"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "从启动器移除"
26+msgid "Unpin shortcut"
27+msgstr "取消固定快捷方式"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "紧急电话"
8080msgid "OK"
8181msgstr "确定"
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "近期搜索"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr "完成"
105101msgid "See more"
106102msgstr "了解更多"
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr "显示更少"
111107
@@ -113,6 +109,10 @@ msgstr "显示更少"
113109msgid "Recent"
114110msgstr "最近使用过的"
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "查看全部"
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr "更多..."
@@ -121,15 +121,15 @@ msgstr "更多..."
121121msgid "Less..."
122122msgstr "更少..."
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "评分"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "添加评论"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "发送"
135135
@@ -165,11 +165,43 @@ msgstr "显示密码"
165165msgid "Please enter SIM PIN"
166166msgstr "请输入 SIM PIN"
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr "点击回到通话..."
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr "会议"
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr "排队中..."
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr "正在下载"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr "已暂停,点击继续"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr "已取消"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr "已完成"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr "下载失败,请点击重试"
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "搜索"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "请输入 %1"
po/zh_HK.po+48−16
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
1111"PO-Revision-Date: 2014-01-25 13:32+0000\n"
1212"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
1313"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "鎖定至啟動器"
22+msgid "Pin shortcut"
23+msgstr ""
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr "從啟動器解除鎖定"
26+msgid "Unpin shortcut"
27+msgstr ""
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "緊急電話"
8080msgid "OK"
8181msgstr ""
8282
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "最近的搜尋"
86−
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
8985msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105101msgid "See more"
106102msgstr ""
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110106msgstr ""
111107
@@ -113,6 +109,10 @@ msgstr ""
113109msgid "Recent"
114110msgstr ""
115111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121121msgid "Less..."
122122msgstr ""
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126126msgstr "評價"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130130msgstr "新增評論"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "傳送"
135135
@@ -165,11 +165,43 @@ msgstr "顯示密碼"
165165msgid "Please enter SIM PIN"
166166msgstr ""
167167
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr ""
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "搜尋"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175207msgstr "請輸入 %1"
po/zh_TW.po+73−41
@@ -7,24 +7,24 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11−"PO-Revision-Date: 2014-01-16 06:04+0000\n"
12−"Last-Translator: Henry Yang <henry9846@hotmail.com>\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11+"PO-Revision-Date: 2014-07-26 16:21+0000\n"
12+"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18+"X-Generator: Launchpad (build 17131)\n"
1919
2020#: plugins/Unity/Launcher/launcheritem.cpp:43
2121#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23−msgstr "鎖定至啟動欄"
22+msgid "Pin shortcut"
23+msgstr "釘住捷徑"
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27−msgstr ""
26+msgid "Unpin shortcut"
27+msgstr "取消捷徑釘選"
2828
2929#: qml/Components/EdgeDemoOverlay.qml:151
3030msgid "Skip intro"
@@ -32,19 +32,19 @@ msgstr "略過導覽"
3232
3333#: qml/Components/EdgeDemo.qml:113
3434msgid "Right edge"
35−msgstr "右方邊界"
35+msgstr "右側邊緣"
3636
3737#: qml/Components/EdgeDemo.qml:114
3838msgid "Try swiping from the right edge to unlock the phone"
39−msgstr "向左滑動以解鎖手機"
39+msgstr "從螢幕右緣向左滑動解鎖手機"
4040
4141#: qml/Components/EdgeDemo.qml:145
4242msgid "Top edge"
43−msgstr "頂部邊界"
43+msgstr "上方邊緣"
4444
4545#: qml/Components/EdgeDemo.qml:146
4646msgid "Try swiping from the top edge to access the indicators"
47−msgstr "向下滑動以開啟指引"
47+msgstr "從螢幕上緣向下滑動打開指示器"
4848
4949#: qml/Components/EdgeDemo.qml:171
5050msgid "Close"
@@ -52,37 +52,33 @@ msgstr "關閉"
5252
5353#: qml/Components/EdgeDemo.qml:172
5454msgid "Swipe up again to close the settings screen"
55−msgstr "再次向上滑動以關財設定頁面"
55+msgstr "再次向上滑動關閉設定畫面"
5656
5757#: qml/Components/EdgeDemo.qml:199
5858msgid "Left edge"
59−msgstr "左方邊界"
59+msgstr "左方邊緣"
6060
6161#: qml/Components/EdgeDemo.qml:200
6262msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr ""
63+msgstr "從螢幕左緣向右滑動揭開啟動器可快速存取程式"
6464
6565#: qml/Components/EdgeDemo.qml:227
6666msgid "Well done"
67−msgstr ""
67+msgstr "做得好"
6868
6969#: qml/Components/EdgeDemo.qml:228
7070msgid ""
7171"You have now mastered the edge gestures and can start using the "
7272"phone<br><br>Tap on the screen to start"
73−msgstr ""
73+msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
7474
7575#: qml/Components/Lockscreen.qml:214
7676msgid "Emergency Call"
77−msgstr "緊急連絡"
77+msgstr "緊急通話"
7878
7979#: qml/Components/Lockscreen.qml:231
8080msgid "OK"
81−msgstr ""
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "最近搜尋"
81+msgstr "確定"
8682
8783#: qml/Components/PassphraseLockscreen.qml:60
8884#, qt-format
@@ -95,47 +91,51 @@ msgstr "您好"
9591
9692#: qml/Components/PinLockscreen.qml:198
9793msgid "CANCEL"
98−msgstr ""
94+msgstr "取消"
9995
10096#: qml/Components/PinLockscreen.qml:216
10197msgid "DONE"
102−msgstr ""
98+msgstr "完成"
10399
104100#: qml/Components/SeeMore.qml:35
105101msgid "See more"
106−msgstr ""
102+msgstr "查看更多"
107103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109105msgid "See less"
110−msgstr ""
106+msgstr "縮減查看"
111107
112108#: qml/Dash/DashApps.qml:37
113109msgid "Recent"
114−msgstr ""
110+msgstr "最近"
111+
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "查看全部"
115115
116116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117117msgid "More..."
118−msgstr ""
118+msgstr "更多…"
119119
120120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121121msgid "Less..."
122−msgstr ""
122+msgstr "縮減…"
123123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125125msgid "Rate this"
126−msgstr "對此評比"
126+msgstr "給予評等"
127127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129129msgid "Add a review"
130−msgstr "新增回覆"
130+msgstr "新增評論"
131131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133133msgid "Send"
134134msgstr "發送"
135135
136136#: qml/Greeter/Greeter.qml:157
137137msgid "Swipe to unlock"
138−msgstr ""
138+msgstr "滑開解除鎖定"
139139
140140#: qml/Hud/HudParametrizedActionsPage.qml:132
141141msgid "Confirm"
@@ -163,13 +163,45 @@ msgstr "顯示密碼"
163163
164164#: qml/Notifications/NotificationMenuItemFactory.qml:103
165165msgid "Please enter SIM PIN"
166−msgstr ""
166+msgstr "請輸入 SIM 卡 PIN 碼"
167+
168+#: qml/Panel/ActiveCallHint.qml:77
169+msgid "Tap to return to call..."
170+msgstr "輕觸可返回通話…"
171+
172+#: qml/Panel/ActiveCallHint.qml:90
173+msgid "Conference"
174+msgstr "會議"
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr "佇列中…"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr "下載中"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr "已暫停,輕觸可繼續"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr "已取消"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr "已完成"
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr "失敗,輕觸可重試"
167199
168200#: qml/Panel/SearchIndicator.qml:27
169201msgid "Search"
170202msgstr "搜尋"
171203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173205#, qt-format
174206msgid "Please enter %1"
175−msgstr ""
207+msgstr "請輸入 %1"
qml/Components/Background.qmlnew file+77
@@ -0,0 +1,77 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+
19+Loader {
20+ id: root
21+ anchors.fill: parent
22+
23+ property url style
24+ readonly property var parsedStyle: String(style)
25+ .match(/^(color|gradient):\/\/\/(?:(#(?:[0-9a-f]{3,4}){1,2}|[a-z]{3,}))(?:\/(#(?:[0-9a-f]{3,4}){1,2}|[a-z]{3,}))?\/?$/i)
26+
27+ sourceComponent: {
28+ if (style == "") return null;
29+ if (!parsedStyle) return image;
30+ if (parsedStyle[1] === "color") return solid
31+ if (parsedStyle[1] === "gradient") return gradient
32+ }
33+
34+ onLoaded: if (item.hasOwnProperty("parsedStyle")) {
35+ item.parsedStyle = Qt.binding(function() { return root.parsedStyle } );
36+ }
37+
38+ Component {
39+ id: solid
40+
41+ Rectangle {
42+ objectName: "solid"
43+
44+ property var parsedStyle
45+
46+ color: parsedStyle ? parsedStyle[2] : "#ffffff"
47+ }
48+ }
49+
50+ Component {
51+ id: gradient
52+
53+ Rectangle {
54+ objectName: "gradient"
55+
56+ property var parsedStyle
57+
58+ gradient: Gradient {
59+ GradientStop { position: 0; color: parsedStyle ? parsedStyle[2] : "#000000" }
60+ GradientStop { position: 1; color: parsedStyle ? parsedStyle[3] : "#000000" }
61+ }
62+ }
63+ }
64+
65+ Component {
66+ id: image
67+
68+ Image {
69+ objectName: "image"
70+
71+ source: width > 0 && height > 0 && root.style
72+
73+ sourceSize.width: width
74+ sourceSize.height: height
75+ }
76+ }
77+}
qml/Components/BaseCarouselDelegate.qml+19
@@ -17,7 +17,26 @@
1717import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919
20+/*!
21+ \brief Base delegate for use with the Carousel component
22+
23+ Use this as the base of your component in a Carousel, the properties
24+ will get updated and signals emitted accordingly.
25+*/
26+
2027Item {
28+ /// True if this item is currently "focused" in the carousel.
2129 property bool explicitlyScaled
30+
31+ /// Model index for this delegate.
32+ property int index
33+
34+ /// Model data for this delegate.
2235 property var model
36+
37+ /// Will be emitted when the item is tapped.
38+ signal clicked
39+
40+ /// Will be emitted when the item is long-pressed.
41+ signal pressAndHold
2342}
qml/Components/Carousel.qml+5−14
@@ -52,16 +52,6 @@ Item {
5252 /// exposes the distance to the next row (only one row in carousel, so it's the topMargins)
5353 readonly property alias verticalSpacing: listView.verticalMargin
5454
55− /// Emitted when the user clicked on an item
56− /// @param index is the index of the clicked item
57− /// @param itemY is y of the clicked delegate
58− signal clicked(int index, real itemY)
59−
60− /// Emitted when the user pressed and held on an item
61− /// @param index is the index of the held item
62− /// @param itemY is y of the held delegate
63− signal pressAndHold(int index, real itemY)
64−
6555 implicitHeight: listView.tileHeight * selectedItemScaleFactor
6656 opacity: listView.highlightIndex === -1 ? 1 : 0.6
6757
@@ -167,7 +157,7 @@ Item {
167157 /* We're clicking the selected item and
168158 we're in the neighbourhood of radius 1 pixel from it.
169159 Let's emit the clicked signal. */
170− carousel.clicked(index, delegateItem.y)
160+ delegateItem.clicked()
171161 return
172162 }
173163
@@ -185,7 +175,7 @@ Item {
185175 /* We're pressAndHold the selected item and
186176 we're in the neighbourhood of radius 1 pixel from it.
187177 Let's emit the pressAndHold signal. */
188− carousel.pressAndHold(index, delegateItem.y);
178+ delegateItem.pressAndHold();
189179 return;
190180 }
191181
@@ -316,8 +306,9 @@ Item {
316306 }
317307
318308 onLoaded: {
319− item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; })
320− item.model = Qt.binding(function() { return model; })
309+ item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; });
310+ item.index = Qt.binding(function() { return index; });
311+ item.model = Qt.binding(function() { return model; });
321312 }
322313
323314 MouseArea {
qml/Components/Dialogs.qmlnew file+217
@@ -0,0 +1,217 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+
19+import Unity.Application 0.1
20+import Unity.Session 0.1
21+import Ubuntu.Components 0.1
22+import Ubuntu.Components.Popups 0.1
23+
24+Item {
25+ id: root
26+
27+ function onPowerKeyPressed() {
28+ if (!powerKeyTimer.running) {
29+ powerKeyTimer.start();
30+ }
31+ }
32+
33+ function onPowerKeyReleased() {
34+ powerKeyTimer.stop();
35+ }
36+
37+ signal powerOffClicked();
38+
39+ QtObject {
40+ id: d // private stuff
41+
42+ property bool dialogShown: false
43+
44+ function showPowerDialog() {
45+ if (!d.dialogShown) {
46+ d.dialogShown = true;
47+ PopupUtils.open(powerDialog, root, {"z": root.z});
48+ }
49+ }
50+ }
51+
52+ Timer {
53+ id: powerKeyTimer
54+ interval: 2000
55+ repeat: false
56+ triggeredOnStart: false
57+
58+ onTriggered: {
59+ d.showPowerDialog();
60+ }
61+ }
62+
63+ Component {
64+ id: logoutDialog
65+ Dialog {
66+ id: dialogueLogout
67+ title: "Logout"
68+ text: "Are you sure that you want to logout?"
69+ Button {
70+ text: "Cancel"
71+ onClicked: {
72+ PopupUtils.close(dialogueLogout);
73+ d.dialogShown = false;
74+ }
75+ }
76+ Button {
77+ text: "Yes"
78+ onClicked: {
79+ DBusUnitySessionService.Logout();
80+ PopupUtils.close(dialogueLogout);
81+ d.dialogShown = false;
82+ }
83+ }
84+ }
85+ }
86+
87+ Component {
88+ id: shutdownDialog
89+ Dialog {
90+ id: dialogueShutdown
91+ title: "Shutdown"
92+ text: "Are you sure that you want to shutdown?"
93+ Button {
94+ text: "Cancel"
95+ onClicked: {
96+ PopupUtils.close(dialogueShutdown);
97+ d.dialogShown = false;
98+ }
99+ }
100+ Button {
101+ text: "Yes"
102+ onClicked: {
103+ dBusUnitySessionServiceConnection.closeAllApps();
104+ DBusUnitySessionService.Shutdown();
105+ PopupUtils.close(dialogueShutdown);
106+ d.dialogShown = false;
107+ }
108+ }
109+ }
110+ }
111+
112+ Component {
113+ id: rebootDialog
114+ Dialog {
115+ id: dialogueReboot
116+ title: "Reboot"
117+ text: "Are you sure that you want to reboot?"
118+ Button {
119+ text: "Cancel"
120+ onClicked: {
121+ PopupUtils.close(dialogueReboot)
122+ d.dialogShown = false;
123+ }
124+ }
125+ Button {
126+ text: "Yes"
127+ onClicked: {
128+ dBusUnitySessionServiceConnection.closeAllApps();
129+ DBusUnitySessionService.Reboot();
130+ PopupUtils.close(dialogueReboot);
131+ d.dialogShown = false;
132+ }
133+ }
134+ }
135+ }
136+
137+ Component {
138+ id: powerDialog
139+ Dialog {
140+ id: dialoguePower
141+ title: "Power"
142+ text: i18n.tr("Are you sure you would like to turn power off?")
143+ Button {
144+ text: i18n.tr("Power off")
145+ onClicked: {
146+ dBusUnitySessionServiceConnection.closeAllApps();
147+ PopupUtils.close(dialoguePower);
148+ d.dialogShown = false;
149+ root.powerOffClicked();
150+ }
151+ }
152+ Button {
153+ text: i18n.tr("Restart")
154+ onClicked: {
155+ dBusUnitySessionServiceConnection.closeAllApps();
156+ DBusUnitySessionService.Reboot();
157+ PopupUtils.close(dialoguePower);
158+ d.dialogShown = false;
159+ }
160+ }
161+ Button {
162+ text: i18n.tr("Cancel")
163+ onClicked: {
164+ PopupUtils.close(dialoguePower);
165+ d.dialogShown = false;
166+ }
167+ }
168+ }
169+ }
170+
171+
172+ Connections {
173+ id: dBusUnitySessionServiceConnection
174+ objectName: "dBusUnitySessionServiceConnection"
175+ target: DBusUnitySessionService
176+
177+ function closeAllApps() {
178+ while (true) {
179+ var app = ApplicationManager.get(0);
180+ if (app === null) {
181+ break;
182+ }
183+ ApplicationManager.stopApplication(app.appId);
184+ }
185+ }
186+
187+ onLogoutRequested: {
188+ // Display a dialog to ask the user to confirm.
189+ if (!d.dialogShown) {
190+ d.dialogShown = true;
191+ PopupUtils.open(logoutDialog, root, {"z": root.z});
192+ }
193+ }
194+
195+ onShutdownRequested: {
196+ // Display a dialog to ask the user to confirm.
197+ if (!d.dialogShown) {
198+ d.dialogShown = true;
199+ PopupUtils.open(shutdownDialog, root, {"z": root.z});
200+ }
201+ }
202+
203+ onRebootRequested: {
204+ // Display a dialog to ask the user to confirm.
205+ if (!d.dialogShown) {
206+ d.dialogShown = true;
207+ PopupUtils.open(rebootDialog, root, {"z": root.z});
208+ }
209+ }
210+
211+ onLogoutReady: {
212+ closeAllApps();
213+ Qt.quit();
214+ }
215+ }
216+
217+}
qml/Components/DraggingArea.qml+4
@@ -117,4 +117,8 @@ MouseArea {
117117 dragging = false
118118 __pressedPosition = Qt.point(mouse.x, mouse.y)
119119 }
120+
121+ onCanceled: {
122+ dragging = false
123+ }
120124}
qml/Components/FilterGrid.qmldeleted−124
@@ -1,124 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import Utils 0.1
20−import "../Components"
21−
22−/*
23− A ResponsiveGridView that can optionally have the number of rows being displayed
24− reduced to collapsedRowCount, in which case a button saying "View all (123)"
25− will be shown at the bottom. If clicked, FilterGrid will them expand vertically
26− to display all rows.
27− */
28−Item {
29− id: root
30−
31− /* Whether, when collapsed, a button should be displayed enabling the user to expand
32− the grid to its full size. */
33− readonly property bool expandable: model.count > rowsWhenCollapsed * iconTileGrid.columns
34−
35− property var model: null
36−
37− /* Maximum number of rows to be show when filter=true. */
38− property int collapsedRowCount: 2
39− property int uncollapsedRowCount: Math.ceil(model.count / columns)
40− /* Never show more rows than model would fill up. */
41− readonly property int rowsWhenCollapsed: Math.min(collapsedRowCount, uncollapsedRowCount)
42− readonly property int collapsedHeight: iconTileGrid.contentHeightForRows(rowsWhenCollapsed)
43− readonly property int uncollapsedHeight: iconTileGrid.contentHeightForRows(uncollapsedRowCount)
44−
45− property alias minimumHorizontalSpacing: iconTileGrid.minimumHorizontalSpacing
46− property alias maximumNumberOfColumns: iconTileGrid.maximumNumberOfColumns
47− property alias columns: iconTileGrid.columns
48− property alias delegateWidth: iconTileGrid.delegateWidth
49− property alias delegateHeight: iconTileGrid.delegateHeight
50− property alias verticalSpacing: iconTileGrid.verticalSpacing
51− readonly property alias margins: iconTileGrid.margins
52− property alias delegate: iconTileGrid.delegate
53− property alias cellWidth: iconTileGrid.cellWidth
54− property alias cellHeight: iconTileGrid.cellHeight
55− property alias displayMarginBeginning: iconTileGrid.displayMarginBeginning
56− property alias displayMarginEnd: iconTileGrid.displayMarginEnd
57− readonly property alias originY: iconTileGrid.originY
58− readonly property alias flicking: iconTileGrid.flicking
59− readonly property alias moving: iconTileGrid.moving
60− readonly property alias pressDelay: iconTileGrid.pressDelay
61− property alias highlightIndex: iconTileGrid.highlightIndex
62− readonly property alias currentItem: iconTileGrid.currentItem
63− readonly property alias filtered: d.filter
64−
65− QtObject {
66− id: d
67− // We do have filter and collapsed properties because we need to decouple
68− // the real filtering with the animation since the closing animation
69− // i.e. setFilter(false. true) we still need to not be filtering until
70− // the animation finishes otherwise we hide the items when the animation
71− // is still running
72− property bool filter: true
73− property bool collapsed: true
74− }
75−
76− height: d.collapsed ? root.collapsedHeight : root.uncollapsedHeight
77− clip: filterAnimation.running
78−
79− Behavior on height {
80− id: heightBehaviour
81− enabled: false
82− NumberAnimation {
83− id: filterAnimation
84− // Duration and easing here match the ListViewWithPageHeader::m_contentYAnimation
85− // otherwise since both animations can run at the same time you'll get
86− // some visual weirdness.
87− duration: 200
88− easing.type: Easing.InOutQuad
89− onRunningChanged: {
90− if (!running) {
91− d.filter = d.collapsed;
92− }
93− heightBehaviour.enabled = false;
94− }
95− }
96− }
97−
98− function setFilter(filter, animate) {
99− heightBehaviour.enabled = animate;
100− d.collapsed = filter;
101− if (!animate || !filter) {
102− d.filter = filter;
103− }
104− }
105−
106− ResponsiveGridView {
107− id: iconTileGrid
108−
109− anchors { left: parent.left; right: parent.right }
110− height: totalContentHeight
111− interactive: false
112−
113− minimumHorizontalSpacing: units.gu(0.5)
114− maximumNumberOfColumns: 6
115− delegateWidth: units.gu(11)
116− delegateHeight: units.gu(9.5)
117− verticalSpacing: units.gu(2)
118−
119− model: LimitProxyModel {
120− model: root.model
121− limit: d.filter ? rowsWhenCollapsed * iconTileGrid.columns : -1
122− }
123− }
124−}
qml/Components/InputMethod.qmlnew file+79
@@ -0,0 +1,79 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Unity.Application 0.1
19+import Ubuntu.Components 0.1
20+
21+Item {
22+ id: root
23+
24+ property var surface: null
25+
26+ property int transitionDuration: UbuntuAnimation.FastDuration
27+
28+ state: {
29+ if (surface && surface.state != MirSurfaceItem.Minimized) {
30+ return "shown";
31+ } else {
32+ return "hidden";
33+ }
34+ }
35+
36+ states: [
37+ State {
38+ name: "shown"
39+ PropertyChanges {
40+ target: root
41+ visible: true
42+ y: 0
43+ }
44+ },
45+ State {
46+ name: "hidden"
47+ PropertyChanges {
48+ target: root
49+ visible: false
50+ // half-way down because the vkb occupies only the lower half of the surface
51+ // TODO: consider keyboard rotation
52+ y: root.parent.height / 2.0
53+ }
54+ }
55+ ]
56+
57+ transitions: [
58+ Transition {
59+ from: "*"; to: "*"
60+ PropertyAction { property: "visible"; value: true }
61+ UbuntuNumberAnimation { property: "y"; duration: transitionDuration }
62+ }
63+ ]
64+
65+ onSurfaceChanged: {
66+ if (surface) {
67+ surface.parent = root;
68+ surface.anchors.fill = root;
69+ }
70+ }
71+
72+ Component.onDestruction: {
73+ if (surface) {
74+ surface.parent = null;
75+ surface.release();
76+ surface = null;
77+ }
78+ }
79+}
qml/Components/ListItems/Header.qml+17−25
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013,2014 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -15,53 +15,45 @@
1515 */
1616
1717import QtQuick 2.0
18+import QtQuick.Layouts 1.1
1819import Ubuntu.Components 0.1
1920
2021Item {
21− /*!
22− \preliminary
23− The text that is shown as the header text.
24− \qmlproperty string text
25− */
2622 property alias text: label.text
27− property alias image: image.source
23+ property alias color: label.color
24+ property alias iconName: icon.name
2825
2926 signal clicked(variant mouse)
3027
3128 height: units.gu(5)
3229
33− Item {
30+ RowLayout {
31+ spacing: units.gu(.5)
3432 anchors {
3533 left: parent.left
3634 right: parent.right
37− rightMargin: units.gu(0.5)
38− top: parent.top
39− bottom: parent.bottom
35+ verticalCenter: parent.verticalCenter
36+ margins: units.gu(1)
4037 }
4138
4239 Label {
4340 id: label
44− anchors {
45− left: parent.left
46− leftMargin: units.gu(2)
47− verticalCenter: parent.verticalCenter
48− }
41+ Layout.fillWidth: true
4942
50− color: "grey" // TODO karni: Update Ubuntu.Compoonents.Themes.Palette.
5143 font.family: "Ubuntu"
5244 fontSize: "medium"
5345 elide: Text.ElideRight
46+ maximumLineCount: 1
5447 textFormat: Text.PlainText
55− width: parent.width - image.width - image.leftMargin - anchors.leftMargin
48+ width: Math.min(parent.width - units.gu(4), implicitWidth)
5649 }
5750
58− Image {
59− id: image
60− readonly property double leftMargin: units.gu(1)
61− x: label.x + label.contentWidth + leftMargin
62− anchors {
63− verticalCenter: parent.verticalCenter
64− }
51+ Icon {
52+ id: icon
53+ visible: name != ""
54+ height: units.gu(2)
55+ width: height
56+ color: label.color
6557 }
6658 }
6759
qml/Components/Lockscreen.qml+17−5
@@ -186,6 +186,17 @@ Showable {
186186 }
187187
188188 Column {
189+ id: emergencyCallColumn
190+
191+ // FIXME: We *should* show emergency dialer if there is a SIM present,
192+ // regardless of whether the side stage is enabled. But right now,
193+ // the assumption is that narrow screens are phones which have SIMs
194+ // and wider screens are tablets which don't. When we do allow this
195+ // on devices with a side stage and a SIM, work should be done to
196+ // ensure that the main stage is disabled while the dialer is present
197+ // in the side stage.
198+ visible: !shell.sideStageEnabled
199+
189200 anchors {
190201 left: parent.left
191202 bottom: parent.bottom
@@ -203,11 +214,6 @@ Showable {
203214 name: "phone-app-call-symbolic"
204215 color: "#f3f3e7"
205216 opacity: 0.6
206−
207− MouseArea {
208− anchors.fill: parent
209− onClicked: root.emergencyCall()
210− }
211217 }
212218
213219 Label {
@@ -219,6 +225,12 @@ Showable {
219225 }
220226 }
221227
228+ MouseArea {
229+ anchors.fill: emergencyCallColumn
230+ onClicked: root.emergencyCall()
231+ enabled: emergencyCallColumn.visible
232+ }
233+
222234 Component {
223235 id: infoPopupComponent
224236 Dialog {
qml/Components/PageHeader.qml+228−313
@@ -14,386 +14,301 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import Ubuntu.Components.Popups 0.1
20−import Ubuntu.Components.ListItems 0.1 as ListItem
21−import Unity 0.2
17+import QtQuick 2.2
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.Themes.Ambiance 1.1
20+import Ubuntu.Components.Popups 1.0
21+import Ubuntu.Components.ListItems 1.0
22+import "SearchHistoryModel"
2223
2324Item {
2425 id: root
26+ objectName: "pageHeader"
27+ implicitHeight: headerContainer.height + units.gu(2) + bottomContainer.height
28+
29+ property bool showBackButton: false
30+ property string title
31+
2532 property bool searchEntryEnabled: false
26− property alias searchQuery: searchField.text
27− property ListModel searchHistory
28− property var scope: null
29− property alias childItem: itemContainer.children
33+ property ListModel searchHistory: SearchHistoryModel
34+ property alias searchQuery: searchTextField.text
35+ property bool searchInProgress: false
36+
3037 property alias bottomItem: bottomContainer.children
31− property alias showBackButton: backButton.visible
3238
33− signal backClicked
39+ // TODO We should use foreground for the icons
40+ // of the toolbar but unfortunately Action does not have
41+ // the keyColor property as Icon does :-/
42+ property var scopeStyle: null
3443
35− height: header.height + units.gu(2) + bottomContainer.height
36− implicitHeight: header.height + units.gu(2) + bottomContainer.height
44+ signal backClicked()
45+
46+ onScopeStyleChanged: refreshLogo()
3747
3848 function triggerSearch() {
39− if (searchEntryEnabled) searchField.forceActiveFocus()
49+ if (searchEntryEnabled) {
50+ headerContainer.showSearch = true;
51+ searchTextField.forceActiveFocus();
52+ }
4053 }
4154
42− function resetSearch() {
43− if (!searchHistory) return;
44−
45− searchHistory.addQuery(searchField.text);
46− unfocus();
47− searchField.text = "";
55+ function resetSearch(keepFocus) {
56+ if (searchHistory) {
57+ searchHistory.addQuery(searchTextField.text);
58+ }
59+ if (!keepFocus) {
60+ unfocus();
61+ }
62+ searchTextField.text = "";
63+ if (headerContainer.popover != null) {
64+ PopupUtils.close(headerContainer.popover);
65+ }
4866 }
4967
5068 function unfocus() {
51− searchField.focus = false;
52− }
53−
54− Connections {
55− target: greeter
56− onShownChanged: if (shown) resetSearch()
69+ searchTextField.focus = false;
70+ if (!searchTextField.text) {
71+ headerContainer.showSearch = false;
72+ }
5773 }
5874
59− Flickable {
60− id: header
61− anchors {
62− left: parent.left
63− right: parent.right
64− top: parent.top
75+ function openSearchHistory() {
76+ if (openSearchAnimation.running) {
77+ openSearchAnimation.openSearchHistory = true;
78+ } else if (root.searchHistory.count > 0 && headerContainer.popover == null) {
79+ headerContainer.popover = PopupUtils.open(popoverComponent, searchTextField,
80+ {
81+ "contentWidth": searchTextField.width,
82+ "edgeMargins": units.gu(1)
83+ }
84+ );
6585 }
66− height: units.gu(6.5)
86+ }
6787
68− interactive: false
69− contentHeight: headerContainer.height
70− clip: true
71−
72− contentY: searchField.activeFocus || searchField.text != "" ? searchContainer.y : headerContainer.y
73−
74− Behavior on contentY { NumberAnimation { duration: 200; easing.type: Easing.OutQuad } }
75−
76− AbstractButton {
77− id: backButton
78− objectName: root.objectName + "_backButton"
79− visible: false
80− height: header.height
81− y: header.contentY
82− anchors {
83− left: parent.left
84− leftMargin: visible ? units.gu(2) : 0
85− }
86− width: visible ? image.width + units.gu(2) : 0
87− onClicked: root.backClicked();
88− Image {
89− id: image
90− anchors.centerIn: parent
91− source: "graphics/headerback.png"
92− }
88+ function refreshLogo() {
89+ if (scopeStyle ? scopeStyle.headerLogo != "" : false) {
90+ header.contents = imageComponent.createObject();
91+ } else if (header.contents) {
92+ header.contents.destroy();
93+ header.contents = null;
9394 }
95+ }
9496
95− // FIXME this could potentially be simplified to avoid all the containers
96− Item {
97− id: headerContainer
97+ Connections {
98+ target: root.scopeStyle
99+ onHeaderLogoChanged: root.refreshLogo()
100+ }
98101
99− anchors {
100− left: backButton.right
101− right: parent.right
102+ InverseMouseArea {
103+ anchors { fill: parent; margins: units.gu(1); bottomMargin: units.gu(3) + bottomContainer.height }
104+ visible: headerContainer.showSearch
105+ onPressed: {
106+ if (headerContainer.popover) {
107+ PopupUtils.close(headerContainer.popover);
102108 }
103− height: childrenRect.height
104−
105− Item {
106− id: itemContainer
107−
108− width: searchContainer.narrowMode ? header.width : header.width - searchContainer.width
109− height: header.height
109+ if (!searchTextField.text) {
110+ headerContainer.showSearch = false;
110111 }
112+ searchTextField.focus = false;
113+ mouse.accepted = false;
114+ }
115+ }
111116
112− Item {
113− id: searchContainer
114− objectName: "searchContainer"
115−
116− visible: searchEntryEnabled
117− property bool popoverShouldOpen: false
118− property bool popoverShouldClose: false
119−
120− property bool narrowMode: parent.width < units.gu(80)
117+ Flickable {
118+ id: headerContainer
119+ objectName: "headerContainer"
120+ clip: openSearchAnimation.running
121+ anchors { left: parent.left; top: parent.top; right: parent.right }
122+ height: units.gu(6.5)
123+ contentHeight: headersColumn.height
124+ interactive: false
125+ contentY: showSearch ? 0 : height
121126
122− property bool active: searchField.text != "" || searchField.activeFocus
123− property var popover: null
127+ property bool showSearch: false
128+ property var popover: null
124129
125− anchors.right: headerContainer.right
126− height: header.height
130+ Background {
131+ objectName: "headerBackground"
132+ style: scopeStyle.headerBackground
133+ }
127134
128− state:
129− if (active && narrowMode) "narrowActive"
130− else if (!active && narrowMode) "narrowInactive"
131− else if (active && !narrowMode) "active"
132− else if (!active && !narrowMode) "inactive"
135+ Behavior on contentY {
136+ UbuntuNumberAnimation {
137+ id: openSearchAnimation
138+ property bool openSearchHistory: false
133139
134− onStateChanged: {
135− if (state == "active" || state == "narrowActive") {
136− popoverShouldOpen = true;
137− popoverShouldClose = false;
138− } else {
139− popoverShouldOpen = false;
140− popoverShouldClose = true;
140+ onRunningChanged: {
141+ if (!running && openSearchAnimation.openSearchHistory) {
142+ openSearchAnimation.openSearchHistory = false;
143+ root.openSearchHistory();
141144 }
142145 }
146+ }
147+ }
143148
144− function openPopover() {
145− if (searchHistory.count > 0) {
146− searchContainer.popover = PopupUtils.open(popoverComponent, pointerPositioner,
147− {
148− "contentWidth": searchField.width,
149− "edgeMargins": units.gu(1)
150− }
151− )
149+ Column {
150+ id: headersColumn
151+ anchors { left: parent.left; right: parent.right }
152+
153+ PageHeadStyle {
154+ id: searchHeader
155+ anchors { left: parent.left; right: parent.right }
156+ height: headerContainer.height
157+ contentHeight: height
158+ opacity: headerContainer.clip || headerContainer.showSearch ? 1 : 0 // setting visible false cause column to relayout
159+ separatorSource: ""
160+ // Required to keep PageHeadStyle noise down as it expects the Page's properties around.
161+ property var styledItem: searchHeader
162+ property string title
163+ property var config: PageHeadConfiguration {
164+ backAction: Action {
165+ iconName: "back"
166+ onTriggered: {
167+ root.resetSearch();
168+ headerContainer.showSearch = false;
169+ }
152170 }
153− popoverShouldOpen = false;
154− popoverShouldClose = false;
155171 }
156−
157− function closePopover() {
158− if (searchContainer.popover) {
159− PopupUtils.close(searchContainer.popover);
160− searchContainer.popover = null;
172+ property var contents: TextField {
173+ id: searchTextField
174+ objectName: "searchTextField"
175+ hasClearButton: false
176+ anchors {
177+ fill: parent
178+ leftMargin: units.gu(1)
179+ topMargin: units.gu(1)
180+ bottomMargin: units.gu(1)
181+ rightMargin: root.width > units.gu(60) ? root.width - units.gu(40) : units.gu(1)
161182 }
162− popoverShouldOpen = false;
163− popoverShouldClose = false;
164− }
165−
166− onActiveFocusChanged: if (!activeFocus) { searchHistory.addQuery(searchField.text) }
167−
168− TextField {
169− id: searchField
170183
171− anchors.fill: parent
172− anchors.margins: units.gu(1)
173−
174− inputMethodHints: Qt.ImhNoPredictiveText
175− hasClearButton: false
184+ secondaryItem: AbstractButton {
185+ height: searchTextField.height
186+ width: height
187+ enabled: searchTextField.text.length > 0
176188
177− primaryItem: AbstractButton {
178− enabled: searchField.text != "" && !searchIndicator.running
179− onClicked: {
180− if (searchField.text != "") {
181− searchHistory.addQuery(searchField.text)
182− searchField.text = ""
189+ Image {
190+ objectName: "clearIcon"
191+ anchors.fill: parent
192+ anchors.margins: units.gu(.75)
193+ source: "image://theme/clear"
194+ opacity: searchTextField.text.length > 0 && !searchActivityIndicator.running
195+ visible: opacity > 0
196+ Behavior on opacity {
197+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
183198 }
184199 }
185− height: parent.height
186− width: height
187200
188201 ActivityIndicator {
189− id: searchIndicator
202+ id: searchActivityIndicator
190203 objectName: "searchIndicator"
191−
192− anchors {
193− verticalCenter: parent.verticalCenter
194− left: parent.left
195− leftMargin: units.gu(0.5)
204+ anchors.fill: parent
205+ anchors.margins: units.gu(.75)
206+ running: root.searchInProgress
207+ opacity: running ? 1 : 0
208+ Behavior on opacity {
209+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
196210 }
197−
198− running: opacity > 0
199− }
200−
201− Image {
202− id: primaryImage
203− objectName: "primaryImage"
204− anchors {
205− verticalCenter: parent.verticalCenter
206− left: parent.left
207− leftMargin: units.gu(0.5)
208− }
209− width: units.gu(3)
210− height: units.gu(3)
211− visible: opacity > 0
212211 }
213212
214− Item {
215− id: pointerPositioner
216− anchors.left: parent.right
217− anchors.leftMargin: units.gu(0.5)
218− anchors.top: parent.bottom
213+ onClicked: {
214+ root.resetSearch(true);
215+ root.openSearchHistory();
219216 }
220217 }
221218
222− onTextChanged: {
223− if (text != "") searchContainer.closePopover()
224− else if (text == "" && activeFocus) searchContainer.openPopover()
225− }
226−
227219 onActiveFocusChanged: {
228− if (!activeFocus) searchContainer.closePopover()
220+ if (activeFocus) {
221+ root.openSearchHistory();
222+ }
229223 }
224+ }
225+ }
230226
231− states: [
232− State {
233− name: "searching"
234− when: scope && scope.searchInProgress
235− PropertyChanges { target: searchIndicator; running: true; opacity: 1 }
236− PropertyChanges { target: primaryImage; opacity: 0 }
237− },
238− State {
239− name: "idle"
240− when: !scope || !scope.searchInProgress
241− PropertyChanges { target: searchIndicator; opacity: 0 }
242− PropertyChanges { target: primaryImage; opacity: 1 }
227+ PageHeadStyle {
228+ id: header
229+ objectName: "innerPageHeader"
230+ anchors { left: parent.left; right: parent.right }
231+ height: headerContainer.height
232+ contentHeight: height
233+ opacity: headerContainer.clip || !headerContainer.showSearch ? 1 : 0 // setting visible false cause column to relayout
234+ separatorSource: ""
235+ textColor: root.scopeStyle ? root.scopeStyle.headerForeground : "grey"
236+ property var styledItem: header
237+ property string title: root.title
238+ property var config: PageHeadConfiguration {
239+ backAction: Action {
240+ iconName: "back"
241+ visible: root.showBackButton
242+ onTriggered: {
243+ root.backClicked();
243244 }
244− ]
245+ }
245246
246− transitions: [
247− Transition {
248− to: "searching"
249− reversible: true
250− SequentialAnimation {
251− NumberAnimation { target: primaryImage; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
252− NumberAnimation { target: searchIndicator; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
247+ actions: [
248+ Action {
249+ iconName: "search"
250+ visible: root.searchEntryEnabled
251+ onTriggered: {
252+ headerContainer.showSearch = true;
253+ searchTextField.forceActiveFocus();
253254 }
254255 }
255256 ]
256257 }
257258
258− states: [
259− State {
260− name: "wide"
261− AnchorChanges { target: itemContainer; anchors.top: headerContainer.top }
262− AnchorChanges { target: searchContainer; anchors.left: undefined; anchors.top: itemContainer.top }
263− },
264− State {
265− name: "narrow"
266− PropertyChanges { target: searchField; highlighted: true }
267− AnchorChanges { target: itemContainer; anchors.top: searchContainer.bottom }
268− AnchorChanges { target: searchContainer; anchors.left: headerContainer.left; anchors.top: headerContainer.top }
269− },
270− State {
271− name: "active"
272− extend: "wide"
273− PropertyChanges { target: searchContainer; width: units.gu(40) }
274− PropertyChanges { target: primaryImage; source: searchField.text ? "../Dash/graphics/icon_clear.png" : "../Dash/graphics/icon_search_active.png" }
275− PropertyChanges { target: searchField; highlighted: true }
276− },
277− State {
278− name: "inactive"
279− extend: "wide"
280− PropertyChanges { target: searchContainer; width: units.gu(25) }
281− PropertyChanges { target: primaryImage; source: "../Dash/graphics/icon_search_inactive.png" }
282− PropertyChanges { target: searchField; highlighted: false }
283− },
284− State {
285− name: "narrowActive"
286− extend: "narrow"
287− PropertyChanges { target: header; contentY: 0 }
288− PropertyChanges { target: primaryImage; source: searchField.text ? "../Dash/graphics/icon_clear.png" : "../Dash/graphics/icon_search_active.png" }
289− },
290− State {
291− name: "narrowInactive"
292− extend: "narrow"
293− PropertyChanges { target: header; contentY: header.height }
294− PropertyChanges { target: primaryImage; source: searchField.text ? "../Dash/graphics/icon_clear.png" : "../Dash/graphics/icon_search_active.png" }
295− }
296− ]
297−
298− transitions: [
299− Transition {
300− to: "active"
301− SequentialAnimation {
302− ParallelAnimation {
303− NumberAnimation { targets: [searchContainer, searchField]; property: "width"; duration: 200; easing.type: Easing.InOutQuad }
304− PropertyAction { target: primaryImage; property: "source" }
305− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
306− }
307− ScriptAction { script: if (searchContainer.popoverShouldOpen) { searchContainer.openPopover(); } }
308− }
309− },
310− Transition {
311− to: "inactive"
312− ScriptAction { script: if (searchContainer.popoverShouldClose) { searchContainer.closePopover(); } }
313− NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.InOutQuad }
314− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
315− },
316− Transition {
317− to: "narrowActive"
318− SequentialAnimation {
319− ParallelAnimation {
320− NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
321− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
322− }
323− ScriptAction { script: if (searchContainer.popoverShouldOpen) { searchContainer.openPopover(); } }
324− }
325− },
326− Transition {
327− to: "narrowInactive"
328− ScriptAction { script: if (searchContainer.popoverShouldClose) { searchContainer.closePopover(); } }
329− NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
330− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
331− }
332− ]
259+ property var contents: null
260+ Component.onCompleted: root.refreshLogo()
333261
334262 Component {
335− id: popoverComponent
336− Popover {
337− id: popover
338−
339− // FIXME: this should go into the first item below, but enable: false
340− // prevents mouse events propagation
341− AbstractButton {
342− anchors {
343− top: parent.top
344− right: parent.right
345− }
346− height: units.gu(6)
347− width: height
348−
349− onClicked: searchContainer.closePopover()
263+ id: imageComponent
350264
351− Image {
352− anchors.centerIn: parent
353− width: units.gu(2)
354− height: units.gu(2)
355− source: "../Dash/graphics/icon_listview_clear.png"
356− }
265+ Item {
266+ anchors { fill: parent; topMargin: units.gu(1); bottomMargin: units.gu(1) }
267+ clip: true
268+ Image {
269+ objectName: "titleImage"
270+ anchors.fill: parent
271+ source: root.scopeStyle ? root.scopeStyle.headerLogo : ""
272+ fillMode: Image.PreserveAspectFit
273+ horizontalAlignment: Image.AlignLeft
274+ sourceSize.height: height
357275 }
276+ }
277+ }
278+ }
279+ }
280+ }
358281
359− Column {
360− anchors {
361− top: parent.top
362− left: parent.left
363− right: parent.right
364− }
365−
366− ListItem.Standard { enabled: false; text: i18n.tr("Recent searches") }
282+ Component {
283+ id: popoverComponent
284+ Popover {
285+ id: popover
286+ autoClose: false
367287
368− Repeater {
369− id: recentSearches
370− model: searchHistory
288+ Component.onDestruction: {
289+ headerContainer.popover = null;
290+ }
371291
372− delegate: ListItem.Standard {
373− showDivider: index < recentSearches.count - 1
374− text: query
375− onClicked: {
376− searchHistory.addQuery(text)
377− searchField.text = text
378− }
379− }
380− }
381− }
382− }
292+ Column {
293+ anchors {
294+ top: parent.top
295+ left: parent.left
296+ right: parent.right
383297 }
384298
385− InverseMouseArea {
386− enabled: searchField.activeFocus
299+ Repeater {
300+ id: recentSearches
301+ model: searchHistory
387302
388− anchors {
389− top: parent.top
390− left: parent.left
391− right: parent.right
303+ delegate: Standard {
304+ showDivider: index < recentSearches.count - 1
305+ text: query
306+ onClicked: {
307+ searchHistory.addQuery(text);
308+ searchTextField.text = text;
309+ PopupUtils.close(popover);
310+ }
392311 }
393−
394− height: searchContainer.popover ? parent.height + searchContainer.popover.contentHeight + units.gu(2) : parent.height
395−
396− onPressed: searchField.focus = false
397312 }
398313 }
399314 }
@@ -402,7 +317,7 @@ Item {
402317 BorderImage {
403318 id: bottomBorder
404319 anchors {
405− top: header.bottom
320+ top: headerContainer.bottom
406321 left: parent.left
407322 right: parent.right
408323 bottom: bottomContainer.top
qml/Components/PageHeaderLabel.qmldeleted−41
@@ -1,41 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−
20−PageHeader {
21− property alias text: label.text
22−
23− childItem: Label {
24− id: label
25− anchors {
26− left: parent.left
27− leftMargin: units.gu(2)
28− right: parent.right
29− verticalCenter: parent.verticalCenter
30− }
31−
32− color: Theme.palette.selected.backgroundText
33− opacity: 0.8
34− font.family: "Ubuntu"
35− font.weight: Font.Light
36− fontSize: "x-large"
37− elide: Text.ElideRight
38− style: Text.Raised
39− styleColor: "black"
40− }
41−}
qml/Components/ResponsiveGridView.qml+2−1
@@ -44,10 +44,11 @@ Item {
4444 property alias displayMarginBeginning: gridView.displayMarginBeginning
4545 property alias displayMarginEnd: gridView.displayMarginEnd
4646 property alias highlightIndex: gridView.highlightIndex
47+ property alias cacheBuffer: gridView.cacheBuffer
4748 readonly property alias currentItem: gridView.currentItem
4849
4950 function contentHeightForRows(rows) {
50− return rows * cellHeight + verticalSpacing
51+ return rows * cellHeight;
5152 }
5253
5354 GridView {
qml/Components/SearchHistoryModel.qml → qml/Components/SearchHistoryModel/SearchHistoryModel.qmlrenamed+1
@@ -14,6 +14,7 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17+pragma Singleton
1718import QtQuick 2.0
1819
1920// TODO sanitize input, move to persistent storage
qml/Components/SearchHistoryModel/qmldirnew file+1
@@ -0,0 +1 @@
1+singleton SearchHistoryModel 1.0 SearchHistoryModel.qml
qml/Components/graphics/headerback@27.pngdeleted

Binary file not shown.

qml/Dash/Apps/RunningApplicationTile.qml+42−34
@@ -29,11 +29,8 @@ AbstractButton {
2929 signal requestedActivationMode()
3030 signal requestedTerminationMode()
3131
32− // Was: childrenRect.height
33− // To avoid "binding loop" warning
34− height: shapedApplicationImage.height + labelContainer.height
35−
36− width: shapedApplicationImage.width <= units.gu(11) ? units.gu(11) : height
32+ width: thumbnail.width
33+ height: thumbnail.height + labelContainer.height
3734
3835 property bool terminationModeEnabled: false
3936
@@ -50,42 +47,53 @@ AbstractButton {
5047 }
5148 }
5249
53− UbuntuShape {
54− id: shapedApplicationImage
55− anchors { top: parent.top; horizontalCenter: parent.horizontalCenter }
56−
57− height: units.gu(17)
58− width: applicationImage.width
59− radius: "medium"
60−
61− image: Image {
62− id: applicationImage
63− source: application.screenshot
64− // height : width = ss.height : ss.width
65− height: shapedApplicationImage.height
66− fillMode: Image.PreserveAspectCrop
67− width: Math.min(height, height * sourceSize.width / sourceSize.height)
68− }
50+ Item {
51+ id: thumbnail
52+
53+ width: shapedApplicationImage.width
54+ height: shapedApplicationImage.height
55+
56+ UbuntuShape {
57+ id: shapedApplicationImage
58+ x: 0
59+ y: 0
60+ height: applicationImage.height
61+ width: applicationImage.width
62+ radius: "medium"
63+
64+ image: Image {
65+ id: applicationImage
66+ source: application.screenshot
67+ // height : width = ss.height : ss.width
68+
69+ property bool isLandscape: sourceSize.width > sourceSize.height
70+ property real maxDimension: units.gu(17)
71+
72+ width: isLandscape ? Math.min(sourceSize.width, maxDimension) : height * (sourceSize.width / sourceSize.height)
73+ height: isLandscape ? width * (sourceSize.height / sourceSize.width) : Math.min(sourceSize.height, maxDimension)
74+ fillMode: Image.Stretch
75+ }
6976
70− }
77+ }
7178
72− UbuntuShape {
73− id: borderPressed
79+ UbuntuShape {
80+ id: borderPressed
7481
75− anchors.fill: shapedApplicationImage
76− radius: "medium"
77− borderSource: "radius_pressed.sci"
78− opacity: root.pressed ? 1.0 : 0.0
79− Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
82+ anchors.fill: shapedApplicationImage
83+ radius: "medium"
84+ borderSource: "radius_pressed.sci"
85+ opacity: root.pressed ? 1.0 : 0.0
86+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
87+ }
8088 }
8189
8290 // FIXME: label code duplicated with Tile
8391 Item {
8492 id: labelContainer
8593 anchors {
86− left: parent.left
87− right: parent.right
88− top: shapedApplicationImage.bottom
94+ left: thumbnail.left
95+ right: thumbnail.right
96+ top: thumbnail.bottom
8997 }
9098 height: units.gu(2)
9199
@@ -110,9 +118,9 @@ AbstractButton {
110118 CloseIcon {
111119 objectName: "closeIcon " + model.name
112120 anchors {
113− left: shapedApplicationImage.left
121+ left: thumbnail.left
114122 leftMargin: -units.gu(1)
115− top: parent.top
123+ top: thumbnail.top
116124 topMargin: -units.gu(1)
117125 }
118126 height: units.gu(6)
qml/Dash/CardCarousel.qml+9−11
@@ -21,13 +21,8 @@ import "../Components"
2121DashRenderer {
2222 id: cardCarousel
2323
24− property alias cacheBuffer: carousel.cacheBuffer
25− property alias itemComponent: carousel.itemComponent
26− property alias minimumTileWidth: carousel.minimumTileWidth
27− property alias selectedItemScaleFactor: carousel.selectedItemScaleFactor
28− property alias tileAspectRatio: carousel.tileAspectRatio
29−
30− height: carousel.implicitHeight + units.gu(6)
24+ expandedHeight: carousel.implicitHeight + units.gu(6)
25+ collapsedHeight: expandedHeight
3126
3227 Carousel {
3328 id: carousel
@@ -40,9 +35,6 @@ DashRenderer {
4035 cacheBuffer: 1404 // 18px * 13gu * 6
4136 model: cardCarousel.model
4237
43− onClicked: cardCarousel.clicked(index, null)
44− onPressAndHold: cardCarousel.pressAndHold(index)
45−
4638 property real fontScale: 1 / selectedItemScaleFactor
4739 property real headerHeight: cardTool.headerHeight / selectedItemScaleFactor
4840
@@ -51,11 +43,16 @@ DashRenderer {
5143
5244 property bool explicitlyScaled
5345 property var model
46+ property int index
5447 enabled: false
5548
49+ objectName: "carouselDelegate" + index
50+
51+ function clicked() { cardCarousel.clicked(index, model.result) }
52+ function pressAndHold() { cardCarousel.pressAndHold(index, model.result) }
53+
5654 sourceComponent: cardTool.cardComponent
5755 onLoaded: {
58− item.objectName = "carouselDelegate" + index;
5956 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
6057 item.height = Qt.binding(function() { return cardTool.cardHeight; });
6158 item.cardData = Qt.binding(function() { return model; });
@@ -64,6 +61,7 @@ DashRenderer {
6461 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
6562 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
6663 item.artShapeBorderSource = "none";
64+ item.scopeStyle = cardCarousel.scopeStyle;
6765 }
6866
6967 BorderImage {
qml/Dash/CardFilterGrid.qml → qml/Dash/CardGrid.qmlrenamed+22−21
@@ -18,33 +18,33 @@ import QtQuick 2.0
1818import "../Components"
1919
2020DashRenderer {
21− id: genericFilterGrid
21+ id: root
2222
23− expandable: filterGrid.expandable
24− collapsedHeight: filterGrid.collapsedHeight
25− uncollapsedHeight: filterGrid.uncollapsedHeight
26− originY: filterGrid.originY
27− height: filterGrid.height
28− filtered: filterGrid.filtered
29−
30− function setFilter(filter, animate) {
31− filterGrid.setFilter(filter, animate)
23+ readonly property int collapsedRows: {
24+ if (!cardTool || !cardTool.template || typeof cardTool.template["collapsed-rows"] != "number") return 2;
25+ return cardTool.template["collapsed-rows"];
3226 }
3327
34− FilterGrid {
35− id: filterGrid
36− width: genericFilterGrid.width
28+ expandedHeight: grid.totalContentHeight
29+ collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows), expandedHeight)
30+ collapsedItemCount: collapsedRows * grid.columns
31+ originY: grid.originY
32+
33+ ResponsiveGridView {
34+ id: grid
35+ anchors.fill: parent
3736 minimumHorizontalSpacing: units.gu(1)
3837 delegateWidth: cardTool.cardWidth
3938 delegateHeight: cardTool.cardHeight
4039 verticalSpacing: units.gu(1)
41− model: genericFilterGrid.model
42− collapsedRowCount: Math.min(2, cardTool && cardTool.template && cardTool.template["collapsed-rows"] || 2)
43− displayMarginBeginning: genericFilterGrid.displayMarginBeginning
44− displayMarginEnd: genericFilterGrid.displayMarginEnd
40+ model: root.model
41+ displayMarginBeginning: root.displayMarginBeginning
42+ displayMarginEnd: root.displayMarginEnd
43+ cacheBuffer: 0
44+ interactive: false
4545 delegate: Item {
46− width: filterGrid.cellWidth
47− height: filterGrid.cellHeight
46+ width: grid.cellWidth
47+ height: grid.cellHeight
4848 Loader {
4949 id: loader
5050 sourceComponent: cardTool.cardComponent
@@ -58,11 +58,12 @@ DashRenderer {
5858 item.template = Qt.binding(function() { return cardTool.template; });
5959 item.components = Qt.binding(function() { return cardTool.components; });
6060 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
61+ item.scopeStyle = root.scopeStyle;
6162 }
6263 Connections {
6364 target: loader.item
64− onClicked: genericFilterGrid.clicked(index, result)
65− onPressAndHold: genericFilterGrid.pressAndHold(index)
65+ onClicked: root.clicked(index, result)
66+ onPressAndHold: root.pressAndHold(index)
6667 }
6768 }
6869 }
qml/Dash/CardVerticalJournal.qml+5−22
@@ -23,33 +23,15 @@ DashRenderer {
2323
2424 readonly property double collapseLimit: units.gu(35)
2525
26− uncollapsedHeight: cardVerticalJournal.implicitHeight
27− collapsedHeight: Math.min(collapseLimit, cardVerticalJournal.implicitHeight)
28− expandable: uncollapsedHeight > collapseLimit
26+ expandedHeight: Math.max(cardVerticalJournal.implicitHeight, minHeight)
27+ collapsedHeight: Math.max(Math.min(collapseLimit, cardVerticalJournal.implicitHeight), minHeight)
28+ // TODO: implement collapsedItemCount
2929
3030 // This minHeight is used as bootstrapper for the height. Vertical Journal
3131 // is special by the fact that it doesn't know how to calculate its implicit height unless we give it
3232 // enough height that it can start creating its children so we make sure it has enough height for that
3333 // in case the model is non empty
34− readonly property double minHeight: root.model.count > 1 ? cardVerticalJournal.rowSpacing + 1 : 0
35− height: filtered ? Math.max(collapsedHeight, minHeight) : uncollapsedHeight
36−
37− Behavior on height {
38− id: heightBehaviour
39− enabled: false
40− animation: UbuntuNumberAnimation {
41− onRunningChanged: {
42− if (!running) {
43− heightBehaviour.enabled = false
44− }
45− }
46− }
47− }
48−
49− function setFilter(filter, animate) {
50− heightBehaviour.enabled = animate;
51− filtered = filter;
52− }
34+ readonly property double minHeight: root.model.count >= 1 ? cardVerticalJournal.rowSpacing + 1 : 0
5335
5436 ResponsiveVerticalJournal {
5537 id: cardVerticalJournal
@@ -75,6 +57,7 @@ DashRenderer {
7557 item.template = Qt.binding(function() { return cardTool.template; });
7658 item.components = Qt.binding(function() { return cardTool.components; });
7759 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
60+ item.scopeStyle = root.scopeStyle;
7861 }
7962 Connections {
8063 target: loader.item
qml/Dash/Dash.qml+14−15
@@ -26,9 +26,6 @@ Showable {
2626
2727 visible: shown
2828
29− property ListModel searchHistory: SearchHistoryModel {}
30− property bool searchable: !dashContent.previewOpen && !scopeItem.previewOpen
31−
3229 property string showScopeOnLoaded: "clickscope"
3330 property real contentScale: 1.0
3431
@@ -76,7 +73,6 @@ Showable {
7673 height: parent.height
7774 model: filteredScopes
7875 scopes: scopes
79− searchHistory: dash.searchHistory
8076 visible: x != -width
8177 onGotoScope: {
8278 dash.setCurrentScope(scopeId, true, false);
@@ -105,26 +101,29 @@ Showable {
105101 }
106102 }
107103
108− ScopeItem {
104+ GenericScopeView {
109105 id: scopeItem
110106 anchors.left: dashContent.right
111107 width: parent.width
112108 height: parent.height
113− searchHistory: dash.searchHistory
114109 scale: dash.contentScale
115110 clip: scale != 1.0
116111 visible: scope != null
117− onBack: {
112+ hasBackAction: true
113+ isCurrent: visible
114+ onBackClicked: {
118115 closeOverlayScope();
119− }
120− onGotoScope: {
121− // TODO
122− console.log("gotoScope from an openScope scope is not implemented");
123− }
124− onOpenScope: {
125− // TODO
126− console.log("openScope from an openScope scope is not implemented");
116+ closePreview();
127117 }
128118
119+ Connections {
120+ target: scopeItem.scope
121+ onGotoScope: {
122+ dashContent.gotoScope(scopeId);
123+ }
124+ onOpenScope: {
125+ dashContent.openScope(scope);
126+ }
127+ }
129128 }
130129}
qml/Dash/DashContent.qml+11−84
@@ -26,13 +26,11 @@ Item {
2626 property var model: null
2727 property var scopes: null
2828 readonly property alias currentIndex: dashContentList.currentIndex
29− property alias previewOpen: previewListView.open
30−
31− property ListModel searchHistory
3229
3330 signal scopeLoaded(string scopeId)
3431 signal gotoScope(string scopeId)
3532 signal openScope(var scope)
33+ signal closePreview()
3634
3735 // If we set the current scope index before the scopes have been added,
3836 // then we need to wait until the loaded signals gets emitted from the scopes
@@ -82,23 +80,16 @@ Item {
8280 dashContentList.currentItem.theScope.closeScope(scope)
8381 }
8482
85− function closePreview() {
86− previewListView.open = false;
87− }
88−
8983 Item {
9084 id: dashContentListHolder
9185
92− x: previewListView.open ? -width : 0
93− Behavior on x { UbuntuNumberAnimation { } }
94− width: parent.width
95− height: parent.height
86+ anchors.fill: parent
9687
9788 ListView {
9889 id: dashContentList
9990 objectName: "dashContentList"
10091
101− interactive: dashContent.scopes.loaded && !previewListView.open && currentItem && !currentItem.moving
92+ interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving
10293
10394 anchors.fill: parent
10495 model: dashContent.model
@@ -130,6 +121,10 @@ Item {
130121 Loader {
131122 width: ListView.view.width
132123 height: ListView.view.height
124+ opacity: { // hide delegate if offscreen
125+ var xPositionRelativetoView = ListView.view.contentX - x
126+ return (xPositionRelativetoView > -width && xPositionRelativetoView < width) ? 1 : 0
127+ }
133128 asynchronous: true
134129 // TODO This if will eventually go away since we're killing DashApps.qml
135130 // once we move app closing to the spread
@@ -147,11 +142,8 @@ Item {
147142
148143 onLoaded: {
149144 item.objectName = scope.id
150− item.pageHeader = dashPageHeader;
151− item.previewListView = previewListView;
152145 item.scope = Qt.binding(function() { return scope })
153146 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
154− item.tabBarHeight = Qt.binding(function() { return dashPageHeader.implicitHeight; })
155147 dashContent.scopeLoaded(item.scope.id)
156148 }
157149 Connections {
@@ -164,78 +156,13 @@ Item {
164156 dashContent.openScope(scope);
165157 }
166158 }
167−
168− Component.onDestruction: active = false
169− }
170− }
171−
172− PageHeader {
173− id: dashPageHeader
174− objectName: "pageHeader"
175− width: parent.width
176− searchEntryEnabled: true
177− searchHistory: dashContent.searchHistory
178− scope: dashContentList.currentItem && dashContentList.currentItem.theScope
179−
180− childItem: TabBar {
181− id: tabBar
182− objectName: "tabbar"
183− height: units.gu(6.5)
184− width: parent.width
185− style: DashContentTabBarStyle {}
186−
187− SortFilterProxyModel {
188− id: tabBarModel
189−
190− model: dashContentList.model
191−
192− property int selectedIndex: -1
193− onSelectedIndexChanged: {
194− if (dashContentList.currentIndex == -1 && tabBar.selectedIndex != -1) {
195− // TODO This together with the Timer below
196− // are a workaround for the first tab sometimes not showing the text.
197− // But Tabs are going away in the future so not sure if makes
198− // sense invetigating what's the problem at this stage
199− selectionModeTimer.restart();
200− }
201− dashContentList.currentIndex = selectedIndex;
202− }
203− }
204−
205− model: tabBarModel.count > 0 ? tabBarModel : null
206−
207− Connections {
208− target: dashContentList
209− onCurrentIndexChanged: {
210− tabBarModel.selectedIndex = dashContentList.currentIndex
159+ Connections {
160+ target: dashContent
161+ onClosePreview: if (item) item.closePreview()
211162 }
212− }
213163
214− Timer {
215− id: selectionModeTimer
216− interval: 1
217− onTriggered: tabBar.selectionMode = false
164+ Component.onDestruction: active = false
218165 }
219− }
220−
221− bottomItem: DashDepartments {
222− scope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
223− width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
224− anchors.right: parent.right
225− windowHeight: dashContent.height
226− windowWidth: dashContent.width
227− }
228166 }
229167 }
230−
231− PreviewListView {
232− id: previewListView
233− objectName: "dashContentPreviewList"
234− visible: x != width
235− scope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
236− pageHeader: dashPageHeader
237− width: parent.width
238− height: parent.height
239− anchors.left: dashContentListHolder.right
240− }
241168}
qml/Dash/DashDepartments.qml+8−7
@@ -29,6 +29,7 @@ AbstractButton {
2929
3030 property alias windowWidth: blackRect.width
3131 property alias windowHeight: blackRect.height
32+ property var scopeStyle: null
3233
3334 // Are we drilling down the tree or up?
3435 property bool isGoingBack: false
@@ -78,18 +79,17 @@ AbstractButton {
7879 anchors.margins: units.gu(2)
7980 verticalAlignment: Text.AlignVCenter
8081 text: root.currentDepartment ? root.currentDepartment.label : ""
81− color: "gray" // TODO remove once we're a separate app
82+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
8283 }
8384
84− Image {
85+ Icon {
8586 anchors.verticalCenter: parent.verticalCenter
8687 anchors.right: parent.right
8788 anchors.rightMargin: units.gu(2)
88− rotation: showList ? 180 : 0
89− source: "image://theme/dropdown-menu"
90− sourceSize.height: parent.height - units.gu(2)
91− sourceSize.width: units.gu(2)
92− fillMode: Image.PreserveAspectFit
89+ name: showList ? "up" : "down"
90+ height: units.gu(2)
91+ width: height
92+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
9393 }
9494
9595 // departmentListView is outside root
@@ -124,6 +124,7 @@ AbstractButton {
124124 objectName: "department" + index
125125 visible: height != 0
126126 width: departmentListView.width
127+ scopeStyle: root.scopeStyle
127128 property real desiredHeight: {
128129 if (root.showList) {
129130 if (department && department.loaded && x == departmentListView.contentX)
qml/Dash/DashDepartmentsList.qml+19−17
@@ -21,15 +21,17 @@ Item {
2121 id: root
2222 property var department: null
2323 property var currentDepartment: null
24+ property var scopeStyle: null
2425 signal enterDepartment(var newDepartmentId, bool hasChildren)
2526 signal goBackToParentClicked()
2627 signal allDepartmentClicked()
2728
2829 readonly property int itemHeight: units.gu(5)
30+ readonly property color foregroundColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
2931 implicitHeight: flickable.contentHeight
3032
3133 Rectangle {
32− color: "white"
34+ color: !root.scopeStyle || Qt.colorEqual(root.scopeStyle.background, "transparent") ? "white" : root.scopeStyle.background
3335 anchors.fill: parent
3436 }
3537
@@ -71,17 +73,17 @@ Item {
7173
7274 onClicked: root.goBackToParentClicked();
7375
74− Image {
76+ Icon {
7577 id: backImage
7678 anchors {
7779 verticalCenter: parent.verticalCenter
7880 left: parent.left
7981 leftMargin: units.gu(2)
8082 }
81− source: "image://theme/back"
82− sourceSize.height: parent.height - units.gu(3)
83− sourceSize.width: units.gu(3)
84− fillMode: Image.PreserveAspectFit
83+ name: "back"
84+ height: units.gu(2)
85+ width: height
86+ color: root.foregroundColor
8587 }
8688
8789 Label {
@@ -91,7 +93,7 @@ Item {
9193 leftMargin: units.gu(0.5)
9294 }
9395 text: department ? department.parentLabel : ""
94− color: "gray" // TODO remove once we're a separate app
96+ color: root.foregroundColor
9597 }
9698
9799 Rectangle {
@@ -102,7 +104,7 @@ Item {
102104 leftMargin: units.gu(2)
103105 rightMargin: units.gu(2)
104106 }
105− color: "gray"
107+ color: root.foregroundColor
106108 opacity: 0.2
107109 height: units.dp(1)
108110 }
@@ -123,7 +125,7 @@ Item {
123125 }
124126 text: department ? (department.allLabel != "" ? department.allLabel : department.label) : ""
125127 font.bold: true
126− color: "gray" // TODO remove once we're a separate app
128+ color: root.foregroundColor
127129 }
128130
129131 Rectangle {
@@ -134,7 +136,7 @@ Item {
134136 leftMargin: units.gu(2)
135137 rightMargin: units.gu(2)
136138 }
137− color: "gray"
139+ color: root.foregroundColor
138140 opacity: 0.2
139141 height: units.dp(1)
140142 }
@@ -159,19 +161,19 @@ Item {
159161 leftMargin: units.gu(2)
160162 }
161163 text: label
162− color: "gray" // TODO remove once we're a separate app
164+ color: root.foregroundColor
163165 }
164166
165− Image {
167+ Icon {
166168 anchors {
167169 verticalCenter: parent.verticalCenter
168170 right: parent.right
169171 rightMargin: units.gu(2)
170172 }
171− source: hasChildren ? "image://theme/chevron" : "graphics/tick.png"
172− sourceSize.height: parent.height - units.gu(3)
173− sourceSize.width: units.gu(3)
174− fillMode: Image.PreserveAspectFit
173+ height: units.gu(2)
174+ width: height
175+ name: hasChildren ? "go-next" : "tick"
176+ color: root.foregroundColor
175177 visible: hasChildren || isActive
176178 }
177179
@@ -183,7 +185,7 @@ Item {
183185 leftMargin: units.gu(2)
184186 rightMargin: units.gu(2)
185187 }
186− color: "gray"
188+ color: root.foregroundColor
187189 opacity: 0.1
188190 height: units.dp(1)
189191 visible: index != department.count - 1
qml/Dash/DashRenderer.qml+8−14
@@ -17,15 +17,11 @@
1717import QtQuick 2.0
1818
1919Item {
20− // Can the item be expanded?
21− property bool expandable: false
20+ property int collapsedHeight
2221
23− // In case it can be expanded, is it filtered
24− property bool filtered: true
22+ property int expandedHeight
2523
26− property int collapsedHeight: height
27−
28− property int uncollapsedHeight: height
24+ property int collapsedItemCount: -1
2925
3026 property int displayMarginBeginning: 0
3127
@@ -36,10 +32,11 @@ Item {
3632 // The model to renderer
3733 property var model
3834
39− /*!
40− \brief CardTool component.
41− */
42− property var cardTool: undefined
35+ /// CardTool component.
36+ property var cardTool: null
37+
38+ /// ScopeStyle component.
39+ property var scopeStyle: null
4340
4441 /// Emitted when the user clicked on an item
4542 /// @param index is the index of the clicked item
@@ -49,7 +46,4 @@ Item {
4946 /// Emitted when the user pressed and held on an item
5047 /// @param index is the index of the held item
5148 signal pressAndHold(int index)
52−
53− function setFilter(filter, animate) {
54− }
5549}
qml/Dash/GenericScopeView.qml+189−93
@@ -19,6 +19,7 @@ import Ubuntu.Components 0.1
1919import Utils 0.1
2020import Unity 0.2
2121import Unity.Application 0.1
22+import Dash 0.1
2223import "../Components"
2324import "../Components/ListItems" as ListItems
2425
@@ -29,13 +30,16 @@ FocusScope {
2930 property SortFilterProxyModel categories: categoryFilter
3031 property bool isCurrent: false
3132 property alias moving: categoryView.moving
32− property int tabBarHeight: 0
33− property PageHeader pageHeader: null
34− property Item previewListView: null
35−
33+ property bool hasBackAction: false
3634 property bool enableHeightBehaviorOnNextCreation: false
3735 property var categoryView: categoryView
3836
37+ property var scopeStyle: ScopeStyle {
38+ style: scope ? scope.customizations : {}
39+ }
40+
41+ signal backClicked()
42+
3943 onScopeChanged: {
4044 if (scope) {
4145 scope.activateApplication.connect(activateApp);
@@ -54,6 +58,10 @@ FocusScope {
5458 categoryView.showHeader()
5559 }
5660
61+ function closePreview() {
62+ previewListView.open = false;
63+ }
64+
5765 Binding {
5866 target: scope
5967 property: "isActive"
@@ -88,44 +96,55 @@ FocusScope {
8896 when: isCurrent
8997 }
9098
91− Connections {
92− target: panel
93− onSearchClicked: if (isCurrent) {
94− pageHeader.triggerSearch()
95− categoryView.showHeader()
96− }
97− }
98−
9999 Connections {
100100 target: scopeView.scope
101101 onShowDash: previewListView.open = false;
102102 onHideDash: previewListView.open = false;
103103 }
104104
105+ Rectangle {
106+ anchors.fill: parent
107+ color: scopeView.scopeStyle ? scopeView.scopeStyle.background : "transparent"
108+ visible: color != "transparent"
109+ }
110+
105111 ScopeListView {
106112 id: categoryView
107113 objectName: "categoryListView"
108− anchors.fill: parent
114+
115+ x: previewListView.open ? -width : 0
116+ Behavior on x { UbuntuNumberAnimation { } }
117+ width: parent.width
118+ height: parent.height
119+
109120 model: scopeView.categories
110121 forceNoClip: previewListView.open
122+ pixelAligned: true
111123
112124 property string expandedCategoryId: ""
113125
114− onContentYChanged: pageHeader.positionRealHeader();
115− onOriginYChanged: pageHeader.positionRealHeader();
116− onContentHeightChanged: pageHeader.positionRealHeader();
117−
118126 delegate: ListItems.Base {
119127 id: baseItem
120128 objectName: "dashCategory" + category
121129 highlightWhenPressed: false
122130 showDivider: false
123131
124− readonly property bool expandable: rendererLoader.item ? rendererLoader.item.expandable : false
125− readonly property bool filtered: rendererLoader.item ? rendererLoader.item.filtered : true
132+ readonly property bool expandable: {
133+ if (categoryView.model.count === 1) return false;
134+ if (cardTool.template && cardTool.template["collapsed-rows"] === 0) return false;
135+ if (item && item.expandedHeight > item.collapsedHeight) return true;
136+ return false;
137+ }
138+ property bool expanded: false
126139 readonly property string category: categoryId
140+ readonly property string headerLink: model.headerLink
127141 readonly property var item: rendererLoader.item
128142
143+ function expand(expand, animate) {
144+ heightBehaviour.enabled = animate;
145+ expanded = expand;
146+ }
147+
129148 CardTool {
130149 id: cardTool
131150 objectName: "cardTool"
@@ -135,22 +154,49 @@ FocusScope {
135154 viewWidth: parent.width
136155 }
137156
157+ onExpandableChanged: {
158+ // This can happen with the VJ that doesn't know how height it will be on creation
159+ // so doesn't set expandable until a bit too late for onLoaded
160+ if (expandable) {
161+ var shouldExpand = baseItem.category === categoryView.expandedCategoryId;
162+ baseItem.expand(shouldExpand, false /*animate*/);
163+ }
164+ }
165+
166+ onHeightChanged: rendererLoader.updateDelegateCreationRange();
167+ onYChanged: rendererLoader.updateDelegateCreationRange();
168+
138169 Loader {
139170 id: rendererLoader
140171 anchors {
141172 top: parent.top
142173 left: parent.left
143174 right: parent.right
144− topMargin: hasSectionHeader ? 0 : units.gu(2)
175+ topMargin: name != "" ? 0 : units.gu(2)
176+ }
177+
178+ Behavior on height {
179+ id: heightBehaviour
180+ enabled: false
181+ animation: UbuntuNumberAnimation {
182+ onRunningChanged: {
183+ if (!running) {
184+ heightBehaviour.enabled = false
185+ }
186+ }
187+ }
145188 }
146189
190+ readonly property bool expanded: baseItem.expanded || !baseItem.expandable
191+ height: expanded ? item.expandedHeight : item.collapsedHeight
192+
147193 source: {
148194 switch (cardTool.categoryLayout) {
149195 case "carousel": return "CardCarousel.qml";
150196 case "vertical-journal": return "CardVerticalJournal.qml";
151197 case "running-apps": return "Apps/RunningApplicationsGrid.qml";
152198 case "grid":
153− default: return "CardFilterGrid.qml";
199+ default: return "CardGrid.qml";
154200 }
155201 }
156202
@@ -168,9 +214,10 @@ FocusScope {
168214 item.model = Qt.binding(function() { return results })
169215 }
170216 item.objectName = Qt.binding(function() { return categoryId })
171− if (item.expandable) {
172− var shouldFilter = categoryId != categoryView.expandedCategoryId;
173− item.setFilter(shouldFilter, false /*animate*/);
217+ item.scopeStyle = scopeView.scopeStyle;
218+ if (baseItem.expandable) {
219+ var shouldExpand = categoryId === categoryView.expandedCategoryId;
220+ baseItem.expand(shouldExpand, false /*animate*/);
174221 }
175222 updateDelegateCreationRange();
176223 item.cardTool = cardTool;
@@ -185,31 +232,28 @@ FocusScope {
185232 Connections {
186233 target: rendererLoader.item
187234 onClicked: {
188− if (scopeView.scope.id === "scopes" || (scopeView.scope.id == "clickscope" && (categoryId == "local" || categoryId == "store"))) {
235+ if (scopeView.scope.id === "scopes" || scopeView.scope.id == "clickscope") {
189236 // TODO Technically it is possible that calling activate() will make the scope emit
190237 // previewRequested so that we show a preview but there's no scope that does that yet
191238 // so it's not implemented
192239 scopeView.scope.activate(result)
193240 } else {
194− previewListView.model = target.model;
195− previewListView.currentIndex = -1
196− previewListView.currentIndex = index;
197− previewListView.open = true
241+ openPreview(index);
198242 }
199243 }
200− onPressAndHold: {
201− previewListView.model = target.model;
202− previewListView.currentIndex = -1
203− previewListView.currentIndex = index;
204− previewListView.open = true
205− }
206− onExpandableChanged: {
207− // This can happen with the VJ that doesn't know how height it will be on creation
208− // so doesn't set expandable until a bit too late for onLoaded
209− if (rendererLoader.item.expandable) {
210− var shouldFilter = baseItem.category != categoryView.expandedCategoryId;
211− rendererLoader.item.setFilter(shouldFilter, false /*animate*/);
244+ onPressAndHold: openPreview(index)
245+
246+ function openPreview(index) {
247+ if (!rendererLoader.expanded && !seeAllLabel.visible && target.collapsedItemCount > 0) {
248+ previewLimitModel.model = target.model;
249+ previewLimitModel.limit = target.collapsedItemCount;
250+ previewListView.model = previewLimitModel;
251+ } else {
252+ previewListView.model = target.model;
212253 }
254+ previewListView.currentIndex = -1;
255+ previewListView.currentIndex = index;
256+ previewListView.open = true;
213257 }
214258 }
215259 Connections {
@@ -219,17 +263,17 @@ FocusScope {
219263 }
220264 function collapseAllButExpandedCategory() {
221265 var item = rendererLoader.item;
222− if (item.expandable) {
223− var shouldFilter = categoryId != categoryView.expandedCategoryId;
224− if (shouldFilter != item.filter) {
266+ if (baseItem.expandable) {
267+ var shouldExpand = categoryId === categoryView.expandedCategoryId;
268+ if (shouldExpand != baseItem.expanded) {
225269 // If the filter animation will be seen start it, otherwise, just flip the switch
226− var shrinkingVisible = shouldFilter && y + item.collapsedHeight < categoryView.height;
227− var growingVisible = !shouldFilter && y + height < categoryView.height;
228− if (!previewListView.open || !shouldFilter) {
270+ var shrinkingVisible = !shouldExpand && y + item.collapsedHeight + seeAll.height < categoryView.height;
271+ var growingVisible = shouldExpand && y + height < categoryView.height;
272+ if (!previewListView.open || shouldExpand) {
229273 var animate = shrinkingVisible || growingVisible;
230− item.setFilter(shouldFilter, animate)
231− if (!shouldFilter && !previewListView.open) {
232− categoryView.maximizeVisibleArea(index, item.uncollapsedHeight);
274+ baseItem.expand(shouldExpand, animate)
275+ if (shouldExpand && !previewListView.open) {
276+ categoryView.maximizeVisibleArea(index, item.expandedHeight + seeAll.height);
233277 }
234278 }
235279 }
@@ -266,73 +310,125 @@ FocusScope {
266310 item.displayMarginEnd = -baseItem.height;
267311 } else {
268312 item.displayMarginBeginning = -Math.max(-baseItem.y, 0);
269− item.displayMarginEnd = -Math.max(baseItem.height - categoryView.height + baseItem.y, 0)
313+ item.displayMarginEnd = -Math.max(baseItem.height - seeAll.height
314+ - categoryView.height + baseItem.y, 0)
270315 }
271316 }
272317 }
318+ }
273319
274− Image {
275− visible: index != 0
276− anchors {
277− top: parent.top
278− left: parent.left
279− right: parent.right
320+ AbstractButton {
321+ id: seeAll
322+ objectName: "seeAll"
323+ anchors {
324+ top: rendererLoader.bottom
325+ left: parent.left
326+ right: parent.right
327+ }
328+ height: seeAllLabel.visible ? seeAllLabel.font.pixelSize + units.gu(6) : 0
329+
330+ onClicked: {
331+ if (categoryView.expandedCategoryId != baseItem.category) {
332+ categoryView.expandedCategoryId = baseItem.category;
333+ } else {
334+ categoryView.expandedCategoryId = "";
280335 }
281− fillMode: Image.Stretch
282− source: "graphics/dash_divider_top_lightgrad.png"
283− z: -1
284336 }
285337
286− Image {
287− // FIXME Should not rely on model.count but view.count, but ListViewWithPageHeader doesn't expose it yet.
288− visible: index != categoryView.model.count - 1
338+ Label {
339+ id: seeAllLabel
340+ text: baseItem.expanded ? i18n.tr("See less") : i18n.tr("See all")
289341 anchors {
290− bottom: parent.bottom
291− left: parent.left
292− right: parent.right
342+ centerIn: parent
343+ verticalCenterOffset: units.gu(-0.5)
293344 }
294− fillMode: Image.Stretch
295− source: "graphics/dash_divider_top_darkgrad.png"
296− z: -1
345+ fontSize: "small"
346+ font.weight: Font.Bold
347+ color: scopeStyle ? scopeStyle.foreground : "grey"
348+ visible: baseItem.expandable && !baseItem.headerLink
297349 }
298350 }
299351
300− onHeightChanged: rendererLoader.updateDelegateCreationRange();
301− onYChanged: rendererLoader.updateDelegateCreationRange();
352+ Image {
353+ visible: index != 0
354+ anchors {
355+ top: parent.top
356+ left: parent.left
357+ right: parent.right
358+ }
359+ fillMode: Image.Stretch
360+ source: "graphics/dash_divider_top_lightgrad.png"
361+ z: -1
362+ }
363+
364+ Image {
365+ // FIXME Should not rely on model.count but view.count, but ListViewWithPageHeader doesn't expose it yet.
366+ visible: index != categoryView.model.count - 1
367+ anchors {
368+ bottom: seeAll.bottom
369+ left: parent.left
370+ right: parent.right
371+ }
372+ fillMode: Image.Stretch
373+ source: "graphics/dash_divider_top_darkgrad.png"
374+ z: -1
375+ }
302376 }
303377
304378 sectionProperty: "name"
305379 sectionDelegate: ListItems.Header {
306380 objectName: "dashSectionHeader" + (delegate ? delegate.category : "")
307− property var delegate: categoryView.item(delegateIndex)
381+ readonly property var delegate: categoryView.item(delegateIndex)
308382 width: categoryView.width
383+ height: section != "" ? units.gu(5) : 0
309384 text: section
310− image: {
311− if (delegate && delegate.expandable)
312− return delegate.filtered ? "graphics/header_handlearrow.png" : "graphics/header_handlearrow2.png"
313− return "";
314− }
385+ color: scopeStyle ? scopeStyle.foreground : "grey"
386+ iconName: delegate && delegate.headerLink ? "go-next" : ""
315387 onClicked: {
316− if (categoryView.expandedCategoryId != delegate.category)
317− categoryView.expandedCategoryId = delegate.category;
318− else
319− categoryView.expandedCategoryId = "";
388+ if (delegate.headerLink) scopeView.scope.performQuery(delegate.headerLink);
320389 }
321390 }
322− pageHeader: Item {
323− implicitHeight: scopeView.tabBarHeight
324− onHeightChanged: {
325− if (scopeView.pageHeader && scopeView.isCurrent) {
326− scopeView.pageHeader.height = height;
327− }
328− }
329− onYChanged: positionRealHeader();
330391
331− function positionRealHeader() {
332− if (scopeView.pageHeader && scopeView.isCurrent) {
333− scopeView.pageHeader.y = y + parent.y;
334− }
392+ pageHeader: PageHeader {
393+ id: pageHeader
394+ objectName: "scopePageHeader"
395+ width: parent.width
396+ title: scopeView.scope ? scopeView.scope.name : ""
397+ showBackButton: scopeView.hasBackAction
398+ searchEntryEnabled: true
399+ searchInProgress: scopeView.scope ? scopeView.scope.searchInProgress : false
400+ scopeStyle: scopeView.scopeStyle
401+
402+ bottomItem: DashDepartments {
403+ scope: scopeView.scope
404+ width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
405+ anchors.right: parent.right
406+ windowHeight: scopeView.height
407+ windowWidth: scopeView.width
408+ scopeStyle: scopeView.scopeStyle
335409 }
410+
411+ onBackClicked: scopeView.backClicked()
336412 }
337413 }
414+
415+ LimitProxyModel {
416+ id: previewLimitModel
417+ }
418+
419+ PreviewListView {
420+ id: previewListView
421+ objectName: "previewListView"
422+ visible: x != width
423+ scope: scopeView.scope
424+ scopeStyle: scopeView.scopeStyle
425+ width: parent.width
426+ height: parent.height
427+ anchors.left: categoryView.right
428+
429+ onOpenChanged: {
430+ pageHeader.unfocus();
431+ }
432+ }
433+
338434}
qml/Dash/PreviewListView.qml+9−25
@@ -24,7 +24,7 @@ Item {
2424 id: root
2525
2626 property var scope: null
27− property var pageHeader: null
27+ property var scopeStyle: null
2828
2929 property alias open: previewListView.open
3030 property alias model: previewListView.model
@@ -34,34 +34,19 @@ Item {
3434
3535 PageHeader {
3636 id: header
37− objectName: root.objectName + "_pageHeader"
37+ objectName: "pageHeader"
3838 width: parent.width
39− searchEntryEnabled: false
40− scope: root.scope
41− height: units.gu(8.5)
39+ title: scope ? scope.name : ""
4240 showBackButton: true
43− onBackClicked: root.open = false
41+ searchEntryEnabled: false
42+ scopeStyle: root.scopeStyle
4443
45− childItem: Label {
46− id: label
47− anchors {
48− left: parent.left
49− right: parent.right
50− verticalCenter: parent.verticalCenter
51− }
52− text: scope ? scope.name : ""
53− // TODO Saviq: These should come from updated Ubuntu Palette.
54− color: "#888888"
55− font.family: "Ubuntu"
56− font.weight: Font.Light
57− fontSize: "x-large"
58− elide: Text.ElideRight
59− }
44+ onBackClicked: root.open = false
6045 }
6146
6247 ListView {
6348 id: previewListView
64− objectName: root.objectName + "_listView"
49+ objectName: "listView"
6550 anchors {
6651 top: header.bottom
6752 bottom: parent.bottom
@@ -88,9 +73,7 @@ Item {
8873 property bool open: false
8974
9075 onOpenChanged: {
91− if (open) {
92− pageHeader.unfocus();
93− } else {
76+ if (!open) {
9477 // Cancel any pending preview requests or actions
9578 if (previewListView.currentItem && previewListView.currentItem.previewData !== undefined) {
9679 previewListView.currentItem.previewData.cancelAction();
@@ -118,6 +101,7 @@ Item {
118101 var previewStack = root.scope.preview(result);
119102 return previewStack.getPreviewModel(0);
120103 }
104+ scopeStyle: root.scopeStyle
121105 }
122106
123107 MouseArea {
qml/Dash/Previews/Preview.qml+4
@@ -36,6 +36,9 @@ Item {
3636 //! \brief Should be set to true if this preview is currently displayed.
3737 property bool isCurrent: false
3838
39+ //! \brief The ScopeStyle component.
40+ property var scopeStyle: null
41+
3942 clip: true
4043
4144 Binding {
@@ -77,6 +80,7 @@ Item {
7780 widgetType: model.type
7881 widgetData: model.properties
7982 isCurrentPreview: root.isCurrent
83+ scopeStyle: root.scopeStyle
8084 anchors {
8185 left: parent.left
8286 right: parent.right
qml/Dash/Previews/PreviewAudioPlayback.qml+3−3
@@ -139,7 +139,7 @@ PreviewWidget {
139139 objectName: "trackTitleLabel"
140140 anchors { top: parent.top; left: parent.left; right: parent.right }
141141 opacity: 0.9
142− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
142+ color: scopeStyle ? scopeStyle.foreground : "grey"
143143 fontSize: "small"
144144 horizontalAlignment: Text.AlignLeft
145145 text: modelData["title"]
@@ -152,7 +152,7 @@ PreviewWidget {
152152 anchors { top: trackTitleLabel.bottom; left: parent.left; right: parent.right }
153153 visible: text !== ""
154154 opacity: 0.9
155− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
155+ color: scopeStyle ? scopeStyle.foreground : "grey"
156156 font.weight: Font.Light
157157 fontSize: "small"
158158 horizontalAlignment: Text.AlignLeft
@@ -193,7 +193,7 @@ PreviewWidget {
193193 anchors.verticalCenter: parent.verticalCenter
194194 width: parent.column3Width
195195 opacity: 0.9
196− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
196+ color: scopeStyle ? scopeStyle.foreground : "grey"
197197 fontSize: "small"
198198 horizontalAlignment: Text.AlignRight
199199 text: audio.lengthToString(modelData["length"])
qml/Dash/Previews/PreviewHeader.qml+1−1
@@ -35,7 +35,7 @@ PreviewWidget {
3535 readonly property url mascot: root.widgetData["mascot"] || ""
3636 readonly property string title: root.widgetData["title"] || ""
3737 readonly property string subtitle: root.widgetData["subtitle"] || ""
38− readonly property color fontColor: "grey"
38+ readonly property color fontColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
3939
4040 implicitHeight: row.height + row.margins * 2
4141 width: parent.width
qml/Dash/Previews/PreviewPayments.qmlnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.1
18+import Ubuntu.Components 0.1
19+import Ubuntu.Payments 0.1
20+
21+/*! \brief Preview widget for a purchase button.
22+ *
23+ * When clicked, this button starts the payments service.
24+ * Then it waits until the purchase finishes or fails.
25+ * Those events trigger the corresponding actions.
26+ */
27+
28+PreviewWidget {
29+ id: root
30+
31+ implicitHeight: paymentButton.implicitHeight
32+ implicitWidth: paymentButton.implicitWidth
33+
34+ Button {
35+ id: paymentButton
36+ objectName: "paymentButton"
37+
38+ color: Theme.palette.selected.foreground
39+ text: paymentClient.formattedPrice
40+ onClicked: paymentClient.start()
41+ anchors.right: parent.right
42+ width: (root.width - units.gu(1)) / 2
43+
44+ Payments {
45+ id: paymentClient
46+
47+ property var source: widgetData["source"]
48+
49+ price: source["price"]
50+ currency: source["currency"]
51+ storeItemId: source["store_item_id"]
52+ onPurchaseCompleted: root.triggered(widgetId, "purchaseCompleted", source)
53+ onPurchaseError: root.triggered(widgetId, "purchaseError", source)
54+ }
55+ }
56+}
qml/Dash/Previews/PreviewRatingDisplay.qml+3−4
@@ -61,6 +61,7 @@ PreviewWidget {
6161 size: 5
6262 value: modelData["rating"] || -1
6363 visible: value >= 0
64+ interactive: false
6465
6566 property var urlIconEmpty: widgetData["rating-icon-empty"]
6667 property var urlIconFull: widgetData["rating-icon-full"]
@@ -71,8 +72,7 @@ PreviewWidget {
7172 id: authorLabel
7273 objectName: "authorLabel"
7374 anchors { left: parent.left; right: parent.right }
74− // TODO cimi: Yet another fix requiring Palette update.
75− color: "grey" //Theme.palette.selected.backgroundText
75+ color: scopeStyle ? scopeStyle.foreground : "grey"
7676 opacity: .8
7777 text: modelData["author"] || ""
7878 visible: text !== ""
@@ -83,8 +83,7 @@ PreviewWidget {
8383 id: reviewLabel
8484 objectName: "reviewLabel"
8585 anchors { left: parent.left; right: parent.right }
86− // TODO cimi: Yet another fix requiring Palette update.
87− color: "grey" //Theme.palette.selected.backgroundText
86+ color: scopeStyle ? scopeStyle.foreground : "grey"
8887 opacity: .8
8988 text: modelData["review"] || ""
9089 visible: text !== ""
qml/Dash/Previews/PreviewRatingInput.qml+2−4
@@ -76,8 +76,7 @@ PreviewWidget {
7676 verticalCenter: parent.verticalCenter
7777 left: parent.left
7878 }
79− // TODO cimi: Yet another fix requiring Palette update.
80− color: "grey" //Theme.palette.selected.backgroundText
79+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
8180 opacity: .8
8281 text: widgetData["rating-label"] || i18n.tr("Rate this")
8382 }
@@ -122,8 +121,7 @@ PreviewWidget {
122121 left: parent.left
123122 right: parent.right
124123 }
125− // TODO cimi: Yet another fix requiring Palette update.
126− color: "grey" //Theme.palette.selected.backgroundText
124+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
127125 opacity: .8
128126 text: widgetData["review-label"] || i18n.tr("Add a review")
129127 }
qml/Dash/Previews/PreviewTextSummary.qml+2−4
@@ -39,8 +39,7 @@ PreviewWidget {
3939 }
4040 height: visible ? implicitHeight : 0
4141 fontSize: "large"
42− // TODO karni: Yet another fix requiring Palette update.
43− color: "grey" //Theme.palette.selected.backgroundText
42+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
4443 visible: text !== ""
4544 opacity: .8
4645 text: widgetData["title"] || ""
@@ -62,8 +61,7 @@ PreviewWidget {
6261 clip: true
6362 fontSize: "small"
6463 lineHeight: 1.2
65− // TODO karni: Yet another fix requiring Palette update.
66− color: "grey" //Theme.palette.selected.backgroundText
64+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
6765 opacity: .8
6866 text: widgetData["text"]
6967 wrapMode: Text.Wrap
qml/Dash/Previews/PreviewWidget.qml+3
@@ -28,6 +28,9 @@ Item {
2828 //! Variable used to contain widget's data
2929 property var widgetData
3030
31+ //! The ScopeStyle component.
32+ property var scopeStyle: null
33+
3134 /*! \brief This signal should be emitted when a preview action was triggered.
3235 *
3336 * \param widgetId, actionId Respective identifiers from widgetData.
qml/Dash/Previews/PreviewWidgetFactory.qml+5
@@ -31,6 +31,9 @@ Loader {
3131 //! Widget data, forwarded to the widget as is.
3232 property var widgetData: null
3333
34+ //! The ScopeStyle component.
35+ property var scopeStyle: null
36+
3437 //! Set to true if the parent preview is displayed.
3538 property bool isCurrentPreview: false
3639
@@ -48,6 +51,7 @@ Loader {
4851 case "header": return "PreviewHeader.qml";
4952 case "image": return "PreviewZoomableImage.qml";
5053 case "progress": return "PreviewProgress.qml";
54+ case "payments": return "PreviewPayments.qml";
5155 case "rating-input": return "PreviewRatingInput.qml";
5256 case "reviews": return "PreviewRatingDisplay.qml";
5357 case "text": return "PreviewTextSummary.qml";
@@ -61,6 +65,7 @@ Loader {
6165 item.widgetId = Qt.binding(function() { return root.widgetId } )
6266 item.widgetData = Qt.binding(function() { return root.widgetData } )
6367 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
68+ if (item.hasOwnProperty("scopeStyle")) item.scopeStyle = root.scopeStyle;
6469 }
6570
6671 Connections {
qml/Dash/ScopeItem.qmldeleted−106
@@ -1,106 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import Unity 0.2
20−import "../Components"
21−
22−Item {
23− id: root
24−
25− property alias scope: scopeView.scope
26− property alias previewOpen: previewListView.open
27−
28− property ListModel searchHistory
29−
30− signal back
31− signal gotoScope(string scopeId)
32− signal openScope(var scope)
33−
34− // TODO see how much code we can share
35− // between here and other Dash parts, it's starting to have
36− // too much duplicated code with the DashDepartments, etc
37−
38− Item {
39− id: scopeViewHolder
40−
41− x: previewListView.open ? -width : 0
42− Behavior on x { UbuntuNumberAnimation { } }
43− width: parent.width
44− height: parent.height
45−
46− GenericScopeView {
47− id: scopeView
48− width: parent.width
49− height: parent.height
50− isCurrent: scope != null
51− tabBarHeight: scopeItemPageHeader.implicitHeight
52− pageHeader: scopeItemPageHeader
53− previewListView: previewListView
54−
55− Connections {
56− target: scopeView.isCurrent ? scope : null
57− onGotoScope: root.gotoScope(scopeId);
58− onOpenScope: root.openScope(scope);
59− }
60− }
61−
62− PageHeader {
63− id: scopeItemPageHeader
64− width: parent.width
65− searchEntryEnabled: true
66− searchHistory: root.searchHistory
67− scope: root.scope
68− height: units.gu(8.5)
69− showBackButton: true
70− onBackClicked: root.back();
71−
72− childItem: Label {
73− id: label
74− anchors {
75− left: parent.left
76− right: parent.right
77− verticalCenter: parent.verticalCenter
78− }
79− text: scope ? scope.name : ""
80− color: "#888888"
81− font.family: "Ubuntu"
82− font.weight: Font.Light
83− fontSize: "x-large"
84− elide: Text.ElideRight
85− }
86−
87− bottomItem: DashDepartments {
88− scope: root.scope
89− width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
90− anchors.right: parent.right
91− windowHeight: root.height
92− windowWidth: root.width
93− }
94− }
95− }
96−
97− PreviewListView {
98− id: previewListView
99− visible: x != width
100− pageHeader: scopeItemPageHeader
101− scope: root.scope
102− width: parent.width
103− height: parent.height
104− anchors.left: scopeViewHolder.right
105− }
106−}
qml/Dash/graphics/icon_listview_clear@20.pngdeleted

Binary file not shown.

qml/Dash/graphics/phone/screenshots/phone@12.png → qml/Dash/graphics/phone/screenshots/dialer@12.pngrenamed

Binary file not shown.

qml/Dash/graphics/phone/screenshots/vkb_portrait.pngnew file

Binary file not shown.

qml/Dash/graphics/tick@30.pngdeleted

Binary file not shown.

qml/Greeter/Greeter.qml+1−1
@@ -70,7 +70,7 @@ Showable {
7070 DraggingArea {
7171 id: dragHandle
7272 anchors.fill: parent
73− enabled: greeter.narrowMode || !greeter.locked
73+ enabled: (greeter.narrowMode || !greeter.locked) && greeter.enabled
7474 orientation: Qt.Horizontal
7575 propagateComposedEvents: true
7676
qml/Hud/HudParametrizedActionsPage.qml+2−2
@@ -19,7 +19,7 @@ import Ubuntu.Components 0.1
1919import "../Components"
2020
2121Item {
22− property alias header: header.text
22+ property alias header: header.title
2323 signal backPressed
2424 signal confirmPressed
2525 signal valuesUpdated
@@ -89,7 +89,7 @@ Item {
8989 anchors.left: parent.left
9090 anchors.right: parent.right
9191
92− PageHeaderLabel {
92+ PageHeader {
9393 id: header
9494 anchors.top: parent.top
9595 anchors.left: parent.left
qml/Launcher/Launcher.qml+34−4
@@ -55,6 +55,10 @@ Item {
5555 switchToNextState("")
5656 }
5757
58+ function fadeOut() {
59+ fadeOutAnimation.start();
60+ }
61+
5862 function switchToNextState(state) {
5963 animateTimer.nextState = state
6064 animateTimer.start();
@@ -99,6 +103,31 @@ Item {
99103 }
100104 }
101105
106+ SequentialAnimation {
107+ id: fadeOutAnimation
108+ ScriptAction {
109+ script: {
110+ panel.layer.enabled = true
111+ }
112+ }
113+ UbuntuNumberAnimation {
114+ target: panel
115+ property: "opacity"
116+ easing.type: Easing.InQuad
117+ to: 0
118+ }
119+ ScriptAction {
120+ script: {
121+ panel.layer.enabled = false
122+ panel.animate = false;
123+ root.state = "";
124+ panel.x = -panel.width
125+ panel.opacity = 1;
126+ panel.animate = true;
127+ }
128+ }
129+ }
130+
102131 MouseArea {
103132 id: launcherDragArea
104133 enabled: root.state == "visible"
@@ -152,7 +181,7 @@ Item {
152181 bottom: parent.bottom
153182 }
154183 x: -width
155− opacity: (x == -width && dragArea.status === DirectionalDragArea.WaitingForTouch) ? 0 : 1
184+ visible: x > -width || dragArea.status === DirectionalDragArea.Undecided
156185 model: LauncherModel
157186
158187 property bool animate: true
@@ -173,9 +202,9 @@ Item {
173202 }
174203
175204 Behavior on x {
205+ enabled: !dragArea.dragging && !launcherDragArea.drag.active && panel.animate;
176206 NumberAnimation {
177− // Disabling animation when dragging
178− duration: dragArea.dragging || launcherDragArea.drag.active ? 0 : 300;
207+ duration: 300
179208 easing.type: Easing.OutCubic
180209 }
181210 }
@@ -215,9 +244,10 @@ Item {
215244 onDraggingChanged: {
216245 if (!dragging) {
217246 if (distance > panel.width / 2) {
218− root.switchToNextState("visible")
219247 if (distance > minimizeDistance) {
220248 root.dash()
249+ } else {
250+ root.switchToNextState("visible")
221251 }
222252 } else {
223253 root.switchToNextState("")
qml/Launcher/LauncherDelegate.qml+36−13
@@ -23,10 +23,10 @@ Item {
2323 property string iconName
2424 property int count: -1
2525 property int progress: -1
26− property bool highlighted: false
2726 property bool itemFocused: false
2827 property real maxAngle: 0
2928 property bool inverted: false
29+ property bool clipCorner: false
3030
3131 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
3232 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
@@ -40,12 +40,6 @@ Item {
4040 property real itemOpacity: 1
4141 property real brightness: 0
4242
43− onIconNameChanged: shaderEffectSource.scheduleUpdate();
44− onCountChanged: shaderEffectSource.scheduleUpdate();
45− onProgressChanged: shaderEffectSource.scheduleUpdate();
46− onHighlightedChanged: shaderEffectSource.scheduleUpdate();
47− onItemFocusedChanged: shaderEffectSource.scheduleUpdate();
48−
4943 Item {
5044 id: iconItem
5145 width: parent.itemWidth + units.gu(1)
@@ -63,17 +57,17 @@ Item {
6357 id: iconImage
6458 sourceSize.width: iconShape.width
6559 sourceSize.height: iconShape.height
60+ fillMode: Image.PreserveAspectCrop
6661 source: root.iconName
6762 }
6863 }
6964
7065 BorderImage {
71− id: overlayHighlight
66+ id: itemGlow
7267 anchors.centerIn: iconItem
73− rotation: inverted ? 180 : 0
74− source: root.highlighted ? "graphics/selected.sci" : "graphics/non-selected.sci"
75− width: root.itemWidth + units.gu(0.5)
76− height: root.itemHeight + units.gu(0.5)
68+ source: "graphics/icon-top-highlight.png"
69+ width: root.itemWidth - units.gu(1)
70+ height: root.itemHeight - units.gu(1)
7771 }
7872
7973 BorderImage {
@@ -150,6 +144,24 @@ Item {
150144 }
151145 }
152146
147+ Item {
148+ id: clipper
149+ anchors.centerIn: parent
150+ width: iconItem.width
151+ height: iconItem.height
152+ Rectangle {
153+ anchors {
154+ fill: parent
155+ topMargin: -units.gu(2)
156+ leftMargin: -units.gu(2)
157+ rightMargin: -units.gu(2)
158+ bottomMargin: units.gu(1.2)
159+ }
160+ color: "red"
161+ rotation: root.rotation + 45
162+ }
163+ }
164+
153165 ShaderEffect {
154166 id: transformEffect
155167 anchors.centerIn: parent
@@ -159,13 +171,18 @@ Item {
159171 property real itemOpacity: root.itemOpacity
160172 property real brightness: Math.max(-1, root.brightness)
161173 property real angle: root.angle
174+ property bool clipCorner: root.clipCorner
162175 rotation: root.inverted ? 180 : 0
163176
164177 property variant source: ShaderEffectSource {
165178 id: shaderEffectSource
166179 sourceItem: iconItem
167180 hideSource: true
168− live: false
181+ }
182+
183+ property var mask: ShaderEffectSource {
184+ sourceItem: clipper
185+ hideSource: true
169186 }
170187
171188 transform: [
@@ -202,13 +219,19 @@ Item {
202219 fragmentShader: "
203220 varying highp vec2 qt_TexCoord0;
204221 uniform sampler2D source;
222+ uniform sampler2D mask;
205223 uniform lowp float brightness;
206224 uniform lowp float itemOpacity;
225+ uniform bool clipCorner;
207226 void main(void)
208227 {
209228 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
229+ highp vec4 maskColor = texture2D(mask, qt_TexCoord0);
210230 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
211231 sourceColor *= itemOpacity;
232+ if (clipCorner) {
233+ sourceColor *= maskColor.a;
234+ }
212235 gl_FragColor = sourceColor;
213236 }"
214237 }
qml/Launcher/LauncherPanel.qml+19−16
@@ -22,8 +22,9 @@ import Ubuntu.Components.Popups 0.1
2222import "../Components/ListItems"
2323import "../Components/"
2424
25−Item {
25+Rectangle {
2626 id: root
27+ color: "#B2000000"
2728
2829 rotation: inverted ? 180 : 0
2930
@@ -37,27 +38,18 @@ Item {
3738 signal applicationSelected(string appId)
3839 signal showDashHome()
3940
40− BorderImage {
41− id: background
42− source: "graphics/launcher_bg.sci"
43− anchors.fill: parent
44− anchors.rightMargin: root.inverted ? 0 : -units.gu(1)
45− anchors.leftMargin: root.inverted ? -units.gu(1) : 0
46− rotation: root.rotation
47− }
48−
4941 Column {
5042 id: mainColumn
5143 anchors {
5244 fill: parent
5345 }
5446
55− MouseArea {
56− id: dashItem
47+ Rectangle {
5748 width: parent.width
5849 height: units.gu(7)
59− onClicked: root.showDashHome()
50+ color: UbuntuColors.orange
6051 z: 1
52+
6153 Image {
6254 objectName: "dashItem"
6355 width: units.gu(5)
@@ -66,7 +58,13 @@ Item {
6658 source: "graphics/home.png"
6759 rotation: root.rotation
6860 }
61+ MouseArea {
62+ id: dashItem
63+ anchors.fill: parent
64+ onClicked: root.showDashHome()
65+ }
6966 }
67+
7068 ThinDivider {
7169 anchors {
7270 left: parent.left
@@ -104,7 +102,6 @@ Item {
104102 highlightRangeMode: ListView.ApplyRange
105103 preferredHighlightBegin: (height - itemHeight) / 2
106104 preferredHighlightEnd: (height + itemHeight) / 2
107− spacing: units.gu(0.5)
108105
109106 // The size of the area the ListView is extended to make sure items are not
110107 // destroyed when dragging them outside the list. This needs to be at least
@@ -156,6 +153,7 @@ Item {
156153 iconName: model.icon
157154 count: model.count
158155 progress: model.progress
156+ clipCorner: model.pinned
159157 itemFocused: model.focused
160158 inverted: root.inverted
161159 z: -Math.abs(offset)
@@ -168,6 +166,7 @@ Item {
168166 anchors.centerIn: parent
169167 width: parent.width + mainColumn.anchors.leftMargin + mainColumn.anchors.rightMargin
170168 opacity: 0
169+ source: "graphics/divider-line.png"
171170 }
172171
173172 states: [
@@ -247,7 +246,7 @@ Item {
247246 Transition {
248247 from: "dragging"
249248 to: "*"
250− NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
249+ NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.SnapDuration }
251250 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
252251 SequentialAnimation {
253252 ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
@@ -465,6 +464,10 @@ Item {
465464 width: itemWidth
466465 rotation: root.rotation
467466 itemOpacity: 0.9
467+ clipCorner: dndArea.draggedIndex > -1 &&
468+ LauncherModel.get(dndArea.draggedIndex).pinned &&
469+ !dndArea.preDragging &&
470+ !dndArea.dragging
468471
469472 function flatten() {
470473 fakeDragItemAnimation.start();
@@ -523,11 +526,11 @@ Item {
523526 color: "#221e1c"
524527 width: units.gu(30)
525528 height: quickListColumn.height
529+ visible: quickListShape.visible
526530 anchors {
527531 left: root.inverted ? undefined : parent.right
528532 right: root.inverted ? parent.left : undefined
529533 margins: units.gu(1)
530−
531534 }
532535 y: itemCenter - (height / 2) + offset
533536 rotation: root.rotation
qml/Launcher/graphics/divider-line.pngnew file

Binary file not shown.

qml/Launcher/graphics/highlight@18.pngdeleted

Binary file not shown.

qml/Launcher/graphics/home@18.png

Binary file not shown.

qml/Launcher/graphics/icon-top-highlight.pngnew file

Binary file not shown.

qml/Launcher/graphics/launcher_bg@30.pngdeleted

Binary file not shown.

qml/Launcher/graphics/launcher_bg@30.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 4
2−border.top: 4
3−border.bottom: 4
4−border.right: 66
5−source: launcher_bg@30.png
qml/Launcher/graphics/non-selected@18.pngdeleted

Binary file not shown.

qml/Launcher/graphics/non-selected@18.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 54
2−border.top: 60
3−border.bottom: 60
4−border.right: 54
5−source: non-selected@18.png
qml/Launcher/graphics/selected@18.pngdeleted

Binary file not shown.

qml/Launcher/graphics/selected@18.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 54
2−border.top: 60
3−border.bottom: 60
4−border.right: 54
5−source: selected@18.png
qml/Launcher/graphics/triangle@18.pngdeleted

Binary file not shown.

qml/Notifications/Notification.qml+125−86
@@ -16,11 +16,13 @@
1616
1717import QtQuick 2.0
1818import QtMultimedia 5.0
19−import Ubuntu.Components 0.1
19+import Ubuntu.Components 1.1
2020import Unity.Notifications 1.0
2121import QMenuModel 0.1
2222import Utils 0.1
2323
24+import Ubuntu.Components.ListItems 0.1 as ListItem
25+
2426Item {
2527 id: notification
2628
@@ -34,11 +36,18 @@ Item {
3436 property var hints
3537 property var notification
3638 property color color
37− property bool fullscreen
39+ property bool fullscreen: false
3840 property int maxHeight
3941 property int margins
42+ property Gradient greenGradient : Gradient {
43+ GradientStop { position: 0.0; color: "#3fb24f" }
44+ GradientStop { position: 1.0; color: "#3fb24f" }
45+ }
46+ property Gradient darkgreyGradient: Gradient {
47+ GradientStop { position: 0.0; color: "#4d4745" }
48+ GradientStop { position: 1.0; color: "#4d4745" }
49+ }
4050
41− fullscreen: false
4251 objectName: "background"
4352 implicitHeight: type !== Notification.PlaceHolder ? (fullscreen ? maxHeight : contentColumn.height + contentColumn.spacing * 2) : 0
4453
@@ -70,7 +79,7 @@ Item {
7079 Audio {
7180 id: sound
7281 objectName: "sound"
73− source: hints["suppress-sound"] != "" ? hints["sound-file"] : undefined
82+ source: hints["suppress-sound"] != "true" && hints["sound-file"] != undefined ? hints["sound-file"] : ""
7483 }
7584
7685 onOpacityChanged: {
@@ -149,9 +158,17 @@ Item {
149158 UnityMenuModel {
150159 id: unityMenuModel
151160
161+ property string lastNameOwner: ""
162+
152163 busName: paths.busName
153164 actions: paths.actions
154165 menuObjectPath: paths.menuObjectPath
166+ onNameOwnerChanged: {
167+ if (lastNameOwner != "" && nameOwner == "" && notification.notification != undefined) {
168+ notification.notification.close()
169+ }
170+ lastNameOwner = nameOwner
171+ }
155172 }
156173
157174 Behavior on implicitHeight {
@@ -262,14 +279,18 @@ Item {
262279 }
263280
264281 Column {
282+ id: dialogColumn
265283 objectName: "dialogListView"
266284 spacing: units.gu(2)
267285
268286 visible: count > 0
269287
270− anchors.left: parent.left; anchors.right: parent.right
271− anchors.top: fullscreen ? parent.top : undefined
272− anchors.bottom: fullscreen ? parent.bottom : undefined
288+ anchors {
289+ left: parent.left
290+ right: parent.right
291+ top: fullscreen ? parent.top : undefined
292+ bottom: fullscreen ? parent.bottom : undefined
293+ }
273294
274295 Repeater {
275296 model: unityMenuModel
@@ -277,7 +298,10 @@ Item {
277298 NotificationMenuItemFactory {
278299 id: menuItemFactory
279300
280− anchors.left: parent.left; anchors.right: parent.right
301+ anchors {
302+ left: dialogColumn.left
303+ right: dialogColumn.right
304+ }
281305
282306 menuModel: unityMenuModel
283307 menuData: model
@@ -291,7 +315,7 @@ Item {
291315 }
292316 }
293317
294− Item {
318+ Row {
295319 id: buttonRow
296320
297321 objectName: "buttonRow"
@@ -300,70 +324,8 @@ Item {
300324 right: parent.right
301325 }
302326 visible: notification.type == Notification.SnapDecision && actionRepeater.count > 0
303− height: units.gu(5)
304−
305− property real buttonWidth: (width - contentColumn.spacing) / 2
306− property bool expanded
307−
308− Button {
309− id: leftButton
310−
311− objectName: "button1"
312− width: parent.expanded ? parent.width : parent.buttonWidth
313− anchors {
314− top: parent.top
315− bottom: parent.bottom
316− }
317− text: notification.type == Notification.SnapDecision && actionRepeater.count >= 2 ? actionRepeater.itemAt(1).actionLabel : ""
318− gradient: UbuntuColors.greyGradient
319− onClicked: {
320− if (actionRepeater.count > 2) {
321− buttonRow.expanded = !buttonRow.expanded
322− } else {
323− notification.notification.invokeAction(actionRepeater.itemAt(1).actionId)
324− }
325− }
326−
327− Behavior on width {
328− UbuntuNumberAnimation {
329− duration: UbuntuAnimation.SnapDuration
330− }
331− }
332− }
333−
334− Button {
335− id: rightButton
336−
337− objectName: "button0"
338− anchors {
339− left: leftButton.right
340− leftMargin: contentColumn.spacing
341− right: parent.right
342− }
343− text: notification.type == Notification.SnapDecision && actionRepeater.count >= 1 ? actionRepeater.itemAt(0).actionLabel : ""
344− anchors {
345− top: parent.top
346− bottom: parent.bottom
347− }
348− gradient: notification.hints["x-canonical-private-button-tint"] == "true" ? UbuntuColors.orangeGradient : UbuntuColors.greyGradient
349− visible: width > 0
350− onClicked: notification.notification.invokeAction(actionRepeater.itemAt(0).actionId)
351− }
352− }
353−
354− Column {
355− objectName: "buttonColumn"
356− spacing: contentColumn.spacing
357− anchors {
358− left: parent.left
359− right: parent.right
360− }
361−
362− // calculate initial position before Column takes over
363− y: buttonRow.y + buttonRow.height + contentColumn.spacing
364−
365− visible: notification.type == Notification.SnapDecision && buttonRow.expanded
366− height: buttonRow.expanded ? implicitHeight : 0
327+ spacing: units.gu(1)
328+ layoutDirection: Qt.RightToLeft
367329
368330 Repeater {
369331 id: actionRepeater
@@ -375,28 +337,105 @@ Item {
375337 property string actionId: id
376338 property string actionLabel: label
377339
378− anchors {
379− left: parent.left
380− right: parent.right
381− }
382−
383340 Component {
384341 id: actionButton
385342
386343 Button {
387344 objectName: "button" + index
388− anchors {
389− left: parent.left
390− right: parent.right
391− }
392−
345+ width: buttonRow.width / 2 - spacing
393346 text: loader.actionLabel
394− height: units.gu(5)
395− gradient: UbuntuColors.greyGradient
347+ gradient: notification.hints["x-canonical-private-button-tint"] == "true" && index == 0 ? greenGradient : darkgreyGradient
396348 onClicked: notification.notification.invokeAction(loader.actionId)
397349 }
398350 }
399− sourceComponent: (index == 0 || index == 1) ? undefined : actionButton
351+ sourceComponent: (index == 0 || index == 1) ? actionButton : undefined
352+ }
353+ }
354+ }
355+
356+ ComboButton {
357+ id: comboButton
358+
359+ objectName: "button2"
360+ width: parent.width
361+ visible: notification.type == Notification.SnapDecision && actionRepeater.count > 3
362+ gradient: darkgreyGradient
363+ onClicked: notification.notification.invokeAction(comboRepeater.itemAt(2).actionId)
364+ expanded: false
365+ expandedHeight: (comboRepeater.count - 2) * units.gu(4) + units.gu(.5)
366+ comboList: Flickable {
367+ // this has to be wrapped inside a flickable
368+ // to work around a feature/bug? of the
369+ // ComboButton SDK-element, making a regular
370+ // unwrapped Column item flickable
371+ // see LP: #1332590
372+ interactive: false
373+ Column {
374+ Repeater {
375+ id: comboRepeater
376+
377+ onVisibleChanged: {
378+ comboButton.text = comboRepeater.itemAt(2).actionLabel
379+ }
380+
381+ model: notification.actions
382+ delegate: Loader {
383+ id: comboLoader
384+
385+ asynchronous: true
386+ visible: status == Loader.Ready
387+ property string actionId: id
388+ property string actionLabel: label
389+ readonly property var splitLabel: actionLabel.match(/(^([-a-z0-9]+):)?(.*)$/)
390+ Component {
391+ id: comboEntry
392+
393+ MouseArea {
394+ id: comboInputArea
395+
396+ objectName: "button" + index
397+ width: comboButton.width
398+ height: comboIcon.height + units.gu(2)
399+
400+ onClicked: {
401+ notification.notification.invokeAction(actionId)
402+ }
403+
404+ ListItem.ThinDivider {
405+ visible: index > 3
406+ }
407+
408+ Icon {
409+ id: comboIcon
410+
411+ anchors {
412+ left: parent.left
413+ leftMargin: units.gu(.5)
414+ verticalCenter: parent.verticalCenter
415+ }
416+ width: units.gu(2)
417+ height: units.gu(2)
418+ color: "white"
419+ name: splitLabel[2]
420+ }
421+
422+ Label {
423+ id: comboLabel
424+
425+ anchors {
426+ left: comboIcon.right
427+ leftMargin: units.gu(1)
428+ verticalCenter: comboIcon.verticalCenter
429+ }
430+ fontSize: "small"
431+ color: "white"
432+ text: splitLabel[3]
433+ }
434+ }
435+ }
436+ sourceComponent: (index > 2) ? comboEntry : undefined
437+ }
438+ }
400439 }
401440 }
402441 }
qml/Notifications/NotificationMenuItemFactory.qml+12−3
@@ -50,7 +50,10 @@ Loader {
5050 Column {
5151 spacing: units.gu(2)
5252
53− anchors.left: parent.left; anchors.right: parent.right
53+ anchors {
54+ left: parent.left
55+ right: parent.right
56+ }
5457
5558 Component.onCompleted: {
5659 menuModel.loadExtendedAttributes(menuIndex, {"x-echo-mode-password": "bool"});
@@ -67,7 +70,10 @@ Loader {
6770
6871 // TODO using Qt.ImhNoPredictiveText here until lp #1291575 is fixed for ubuntu-ui-toolkit
6972 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
70− anchors.left: parent.left; anchors.right: parent.right
73+ anchors {
74+ left: parent.left
75+ right: parent.right
76+ }
7177 echoMode: checkBox.checked ? TextInput.Normal : TextInput.Password
7278 height: units.gu(5)
7379 onTextChanged: {
@@ -98,7 +104,10 @@ Loader {
98104 id: pinLock
99105
100106 Lockscreen {
101− anchors.left: parent.left; anchors.right: parent.right
107+ anchors {
108+ left: parent.left
109+ right: parent.right
110+ }
102111 height: menuFactory.maxHeight
103112 placeholderText: i18n.tr("Please enter SIM PIN")
104113 background: shell.background
qml/Notifications/Notifications.qml+17−1
@@ -36,8 +36,11 @@ ListView {
3636 filterRole: UnityNotifications.ModelInterface.RoleType
3737 filterRegExp: RegExp(UnityNotifications.Notification.SnapDecision)
3838 }
39− spacing: delegate.fullscreen ? 0 : units.gu(.5)
4039
40+ property bool topmostIsFullscreen: false
41+ spacing: topmostIsFullscreen ? 0 : units.gu(.5)
42+
43+ // FIXME: This doesn't make any sense and results in a binding loop
4144 currentIndex: (currentIndex < 1 && count > 1) ? 1 : -1
4245
4346 delegate: Notification {
@@ -61,6 +64,19 @@ ListView {
6164 // make sure there's no opacity-difference between the several
6265 // elements in a notification
6366 layer.enabled: add.running || remove.running || populate.running
67+
68+ Component.onCompleted: {
69+ if (index == 1) {
70+ notificationList.topmostIsFullscreen = fullscreen
71+ }
72+ }
73+
74+ onFullscreenChanged: {
75+ // index 1 because 0 is the PlaceHolder...
76+ if (index == 1) {
77+ notificationList.topmostIsFullscreen = fullscreen
78+ }
79+ }
6480 }
6581
6682 populate: Transition {
qml/Panel/ActiveCallHint.qmlnew file+206
@@ -0,0 +1,206 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Telephony 0.1 as Telephony
19+import Ubuntu.Components 0.1
20+import Unity.Application 0.1
21+import "../Components"
22+
23+Item {
24+ id: callHint
25+
26+ readonly property bool active: {
27+ var application = ApplicationManager.findApplication("dialer-app");
28+
29+ if (callManager.callIndicatorVisible) {
30+ // at the moment, callIndicatorVisible is only "valid" if dialer is in focus.
31+ if (application && ApplicationManager.focusedApplicationId === "dialer-app") {
32+ // Don't show if application is still starting; might get a fleeting true/false.
33+ return application.state !== ApplicationInfoInterface.Starting;
34+ }
35+ }
36+ if (ApplicationManager.focusedApplicationId !== "dialer-app") {
37+ if (application) {
38+ // Don't show if application is still starting; might get a fleeting true/false.
39+ return application.state !== ApplicationInfoInterface.Starting && callManager.hasCalls;
40+ }
41+ return callManager.hasCalls;
42+ }
43+ return false;
44+ }
45+ readonly property QtObject contactWatcher: _contactWatcher
46+ property int labelSwitchInterval: 6000
47+ implicitWidth: row.x + row.width
48+
49+ Component.onCompleted: {
50+ telepathyHelper.registerChannelObserver("unity8");
51+ }
52+
53+ function showLiveCall() {
54+ Qt.openUrlExternally("dialer:///?view=liveCall");
55+ }
56+
57+ Component {
58+ id: contactColumn
59+
60+ Column {
61+ id: column
62+ objectName: "contactColumn"
63+
64+ anchors.left: parent.left
65+
66+ Component.onCompleted: {
67+ if (index === 0) {
68+ labelPathView.column1 = column;
69+ } else {
70+ labelPathView.column2 = column;
71+ }
72+ }
73+
74+ Label {
75+ height: callHint.height
76+ verticalAlignment: Text.AlignVCenter
77+ text: i18n.tr("Tap to return to call...");
78+ }
79+
80+ Label {
81+ objectName: "contactLabel"
82+ height: callHint.height
83+ verticalAlignment: Text.AlignVCenter
84+ width: Math.max(contentWidth, 1)
85+
86+ text: {
87+ if (!d.activeCall) {
88+ return "";
89+ } else if (d.activeCall.isConference) {
90+ return i18n.tr("Conference");
91+ } else {
92+ return contactWatcher.alias !== "" ? contactWatcher.alias : contactWatcher.phoneNumber;
93+ }
94+ }
95+ }
96+ }
97+ }
98+
99+ Row {
100+ id: row
101+ anchors {
102+ top: parent.top
103+ bottom: parent.bottom
104+ left: parent.left
105+ leftMargin: units.gu(1)
106+ }
107+ spacing: units.gu(1)
108+
109+ Label {
110+ id: time
111+ objectName: "timeLabel"
112+
113+ anchors {
114+ top: parent.top
115+ bottom: parent.bottom
116+ }
117+ verticalAlignment: Text.AlignVCenter
118+ horizontalAlignment: Text.AlignRight
119+ text: {
120+ var m = Math.round(d.callTime/60);
121+ var ss = d.callTime % 60;
122+ if (ss >= 10) {
123+ return m + ":" + ss;
124+ } else {
125+ return m + ":0" + ss;
126+ }
127+ }
128+ }
129+
130+ PathView {
131+ id: labelPathView
132+ objectName: "labelPathView"
133+
134+ anchors {
135+ top: parent.top
136+ bottom: parent.bottom
137+ }
138+ width: column1 && column2 ? Math.max(column1.width, column1.width) : 0
139+ clip: true
140+
141+ property Column column1
142+ property Column column2
143+ property int columnHeight: column1 ? column1.height : 0
144+
145+ delegate: contactColumn
146+ model: 2
147+ offset: 0
148+ interactive: false
149+
150+ path: Path {
151+ startY: -labelPathView.columnHeight / 2
152+ PathLine {
153+ y: labelPathView.columnHeight * 1.5
154+ }
155+ }
156+
157+ Behavior on offset {
158+ id: offsetBehaviour
159+ SmoothedAnimation {
160+ id: offsetAnimation
161+ // ensure we go faster than the label switch
162+ duration: labelSwitchInterval/8
163+ velocity: 0.75
164+ easing.type: Easing.InOutQuad
165+ }
166+ }
167+ }
168+ }
169+
170+ Timer {
171+ id: alternateLabelTimer
172+ running: callHint.active
173+ interval: labelPathView.offset % 1.0 !== 0 ? labelSwitchInterval : labelSwitchInterval/4
174+ repeat: true
175+
176+ onRunningChanged: {
177+ if (running) {
178+ offsetBehaviour.enabled = false;
179+ labelPathView.offset = 0;
180+ offsetBehaviour.enabled = true;
181+ }
182+ }
183+
184+ onTriggered: {
185+ labelPathView.offset = labelPathView.offset + 0.5;
186+ }
187+ }
188+
189+ Telephony.ContactWatcher {
190+ id: _contactWatcher
191+ objectName: "contactWatcher"
192+ phoneNumber: d.activeCall ? d.activeCall.phoneNumber : ""
193+ }
194+
195+ QtObject {
196+ id: d
197+
198+ property QtObject activeCall: {
199+ if (callManager.foregroundCall) {
200+ return callManager.foregroundCall;
201+ }
202+ return callManager.backgroundCall;
203+ }
204+ property int callTime: activeCall ? activeCall.elapsedTime : 0
205+ }
206+}
qml/Panel/IndicatorRow.qml+1−1
@@ -36,7 +36,7 @@ Item {
3636
3737 function setDefaultItem() {
3838 // The leftmost indicator
39− setCurrentItem(0);
39+ setCurrentItemIndex(0);
4040 }
4141
4242 function setCurrentItemIndex(index) {
qml/Panel/Indicators.qml+26−36
@@ -28,7 +28,6 @@ Showable {
2828
2929 property real openedHeight: units.gu(71)
3030 property int panelHeight: units.gu(3)
31− property bool pinnedMode: true //should be set true if indicators menu can cover whole screen
3231 property alias overFlowWidth: indicatorRow.overFlowWidth
3332 property alias showAll: indicatorRow.showAll
3433 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
@@ -38,26 +37,21 @@ Showable {
3837 readonly property int lockThreshold: openedHeight / 2
3938 property bool fullyOpened: height == openedHeight
4039 property bool partiallyOpened: height > panelHeight && !fullyOpened
41− property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
40+ property bool fullyClosed: height <= panelHeight
4241 property bool contentEnabled: true
4342 property bool initalizeItem: true
4443 readonly property alias content: menuContent
4544 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
45+ property bool enableHint: true
46+ property real showHintBottomMargin: 0
47+
48+ signal showTapped(point position)
4649
4750 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
4851 // use its own values. Need to ask design about this.
4952 showAnimation: StandardAnimation {
5053 property: "height"
51− duration: 350
5254 to: openedHeight
53− easing.type: Easing.OutCubic
54−
55− // Re-size if we've changed the openHeight while shown.
56− onToChanged: {
57− if (indicators.shown) {
58− indicators.show();
59− }
60− }
6155 }
6256
6357 hideAnimation: StandardAnimation {
@@ -67,16 +61,24 @@ Showable {
6761 easing.type: Easing.OutCubic
6862 }
6963
64+ onOpenedHeightChanged: {
65+ if (showAnimation.running) {
66+ showAnimation.restart();
67+ } else if (indicators.shown) {
68+ height = openedHeight;
69+ }
70+ }
71+
7072 height: panelHeight
71− onHeightChanged: updateRevealProgressState(indicators.height - panelHeight, true)
73+ onHeightChanged: updateRevealProgressState(indicators.height - panelHeight - showHintBottomMargin, true)
7274
7375 function updateRevealProgressState(revealProgress, enableRelease) {
7476 if (!showAnimation.running && !hideAnimation.running) {
7577 if (revealProgress === 0) {
7678 indicators.state = "initial";
77− } else if (revealProgress > 0 && revealProgress <= hintValue) {
79+ } else if (enableHint && revealProgress > 0 && revealProgress <= hintValue) {
7880 indicators.state = "hint";
79− } else if (revealProgress > hintValue && revealProgress < lockThreshold) {
81+ } else if ((!enableHint || revealProgress > hintValue) && revealProgress < lockThreshold) {
8082 indicators.state = "reveal";
8183 } else if (revealProgress >= lockThreshold && lockThreshold > 0) {
8284 indicators.state = "locked";
@@ -171,17 +173,6 @@ Showable {
171173 }
172174 }
173175
174− VerticalThinDivider {
175− anchors {
176− top: indicators.top
177− topMargin: panelHeight
178− bottom: handle.bottom
179− right: indicators.left
180− }
181− width: units.dp(2)
182− source: "graphics/VerticalDivider.png"
183− }
184−
185176 VisibleIndicators {
186177 id: visibleIndicators
187178 }
@@ -197,6 +188,7 @@ Showable {
197188 bottom: handle.top
198189 }
199190 indicatorsModel: visibleIndicators.model
191+ visible: indicators.partiallyOpened || indicators.fullyOpened
200192 clip: !indicators.fullyOpened
201193 activeHeader: indicators.state == "hint" || indicators.state == "reveal"
202194 enabled: contentEnabled
@@ -229,6 +221,7 @@ Showable {
229221 }
230222 height: Math.max(Math.min(handleImage.height, indicators.height - handleImage.height), 0)
231223 clip: height < handleImage.height
224+ visible: menuContent.visible
232225
233226 BorderImage {
234227 id: handleImage
@@ -245,10 +238,6 @@ Showable {
245238 }
246239 }
247240
248− PanelBackground {
249− anchors.fill: indicatorRow
250− }
251−
252241 IndicatorRow {
253242 id: indicatorRow
254243 objectName: "indicatorRow"
@@ -276,6 +265,7 @@ Showable {
276265 indicators.calculateCurrentItem(touchX, false);
277266 } else {
278267 indicators.state = "commit";
268+ indicatorRow.currentItemOffset = 0;
279269 }
280270 }
281271
@@ -356,24 +346,27 @@ Showable {
356346 id: showDragHandle
357347 anchors.bottom: parent.bottom
358348 // go beyond parent so that it stays reachable, at the top of the screen.
359− anchors.bottomMargin: pinnedMode ? 0 : -panelHeight
349+ anchors.bottomMargin: showHintBottomMargin
360350 anchors.left: parent.left
361351 anchors.right: parent.right
362352 height: panelHeight
363353 direction: Direction.Downwards
364354 enabled: !indicators.shown && indicators.available
365− hintDisplacement: pinnedMode ? indicators.hintValue : 0
355+ hintDisplacement: enableHint ? indicators.hintValue : 0
366356 autoCompleteDragThreshold: maxTotalDragDistance / 2
367357 stretch: true
368358 maxTotalDragDistance: openedHeight - panelHeight
369− distanceThreshold: pinnedMode ? 0 : units.gu(3)
359+ distanceThreshold: panelHeight
370360
371361 onStatusChanged: {
372362 if (status === DirectionalDragArea.Recognized) {
373363 menuContent.activateContent();
374364 }
375365 }
366+
367+ onTapped: showTapped(Qt.point(touchSceneX, touchSceneY));
376368 }
369+
377370 DragHandle {
378371 id: hideDragHandle
379372 anchors.fill: handle
@@ -396,10 +389,6 @@ Showable {
396389 },
397390 State {
398391 name: "hint"
399− PropertyChanges {
400− target: indicatorRow;
401− y: pinnedMode ? 0 : panelHeight
402− }
403392 StateChangeScript {
404393 script: {
405394 if (d.activeDragHandle) {
@@ -432,5 +421,6 @@ Showable {
432421 Component.onCompleted: initialise();
433422 function initialise() {
434423 visibleIndicators.load(profile);
424+ indicatorRow.setDefaultItem();
435425 }
436426}
qml/Panel/Indicators/DefaultIndicatorPage.qml+3−2
@@ -22,7 +22,7 @@ import QtQuick 2.0
2222import Ubuntu.Components 0.1 as Components
2323import Unity.Indicators 0.1 as Indicators
2424
25−Indicators.IndicatorBase {
25+IndicatorBase {
2626 id: main
2727
2828 //const
@@ -174,8 +174,9 @@ Indicators.IndicatorBase {
174174 }
175175 }
176176
177− Indicators.MenuItemFactory {
177+ MenuItemFactory {
178178 id: factory
179+ rootModel: main.menuModel ? main.menuModel : null
179180 menuModel: mainMenu.model ? mainMenu.model : null
180181 }
181182
qml/Panel/Indicators/DefaultIndicatorWidget.qml+22−31
@@ -19,12 +19,12 @@
1919
2020import QtQuick 2.0
2121import Ubuntu.Components 0.1
22−import Unity.Indicators 0.1 as Indicators
22+import Ubuntu.Settings.Components 0.1
2323
24−Indicators.IndicatorBase {
24+IndicatorBase {
2525 id: indicatorWidget
2626
27− property int iconSize: height
27+ property int iconSize: units.gu(2)
2828 property alias leftLabel: itemLeftLabel.text
2929 property alias rightLabel: itemRightLabel.text
3030 property var icons: undefined
@@ -32,9 +32,16 @@ Indicators.IndicatorBase {
3232 width: itemRow.width
3333 enabled: false
3434
35+ // FIXME: For now we will enable led indicator support only for messaging indicator
36+ // in the future we should export a led API insted of doing that,
37+ Loader {
38+ id: indicatorLed
39+ // only load source Component if the icons contains the new message icon
40+ source: (indicatorWidget.icons && (String(indicatorWidget.icons).indexOf("indicator-messages-new") != -1)) ? Qt.resolvedUrl("IndicatorsLight.qml") : ""
41+ }
42+
3543 Row {
3644 id: itemRow
37− width: childrenRect.width
3845 objectName: "itemRow"
3946 anchors {
4047 top: parent.top
@@ -44,7 +51,7 @@ Indicators.IndicatorBase {
4451
4552 Label {
4653 id: itemLeftLabel
47− width: guRoundUp(implicitWidth)
54+ width: contentWidth + units.gu(1)
4855 objectName: "leftLabel"
4956 color: Theme.palette.selected.backgroundText
5057 opacity: 0.8
@@ -52,10 +59,10 @@ Indicators.IndicatorBase {
5259 fontSize: "medium"
5360 anchors.verticalCenter: parent.verticalCenter
5461 visible: text != ""
62+ horizontalAlignment: Text.AlignHCenter
5563 }
5664
5765 Row {
58− width: childrenRect.width
5966 anchors {
6067 top: parent.top
6168 bottom: parent.bottom
@@ -65,22 +72,16 @@ Indicators.IndicatorBase {
6572 model: indicatorWidget.icons
6673
6774 Item {
68− width: guRoundUp(itemImage.width)
69− height: indicatorWidget.iconSize
75+ width: itemImage.width + units.gu(1)
76+ anchors { top: parent.top; bottom: parent.bottom }
7077
71− Image {
78+ StatusIcon {
7279 id: itemImage
73− objectName: "itemImage"
74− visible: source != ""
80+ height: indicatorWidget.iconSize
81+ anchors.centerIn: parent
7582 source: modelData
76− height: parent.height
77− anchors.horizontalCenter: parent.horizontalCenter
78− fillMode: Image.PreserveAspectFit
79−
80− sourceSize {
81− width: indicatorWidget.iconSize
82− height: indicatorWidget.iconSize
83− }
83+ sets: ["status", "actions"]
84+ color: "#CCCCCC"
8485 }
8586 }
8687 }
@@ -88,7 +89,7 @@ Indicators.IndicatorBase {
8889
8990 Label {
9091 id: itemRightLabel
91− width: guRoundUp(implicitWidth)
92+ width: contentWidth + units.gu(1)
9293 objectName: "rightLabel"
9394 color: Theme.palette.selected.backgroundText
9495 opacity: 0.8
@@ -96,20 +97,10 @@ Indicators.IndicatorBase {
9697 fontSize: "medium"
9798 anchors.verticalCenter: parent.verticalCenter
9899 visible: text != ""
100+ horizontalAlignment: Text.AlignHCenter
99101 }
100102 }
101103
102− // TODO: Use toolkit function https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1242575
103− function guRoundUp(width) {
104− if (width == 0) {
105− return 0;
106− }
107− var gu1 = units.gu(1.0);
108− var mod = (width % gu1);
109−
110− return mod == 0 ? width : width + (gu1 - mod);
111− }
112−
113104 onRootActionStateChanged: {
114105 if (rootActionState == undefined) {
115106 leftLabel = "";
plugins/Unity/Indicators/qml/IndicatorBase.qml → qml/Panel/Indicators/IndicatorBase.qmlrenamed+2−3
@@ -18,8 +18,7 @@
1818 */
1919
2020import QtQuick 2.0
21−import QMenuModel 0.1 as QMenuModel
22−import Unity.Indicators 0.1 as Indicators
21+import Unity.Indicators 0.1
2322
2423Item {
2524 id: indicatorItem
@@ -43,7 +42,7 @@ Item {
4342 menuObjectPath: indicatorItem.deviceMenuObjectPath
4443 }
4544
46− property var rootActionState: Indicators.RootActionState {
45+ property RootActionState rootActionState: RootActionState {
4746 menu: menuModel
4847 onUpdated: indicatorItem.rootActionStateChanged()
4948 }
qml/Panel/Indicators/IndicatorDelegate.qml+1−2
@@ -18,9 +18,8 @@
1818 */
1919
2020import QtQuick 2.0
21−import Unity.Indicators 0.1 as Indicators
2221
23−Indicators.IndicatorBase {
22+IndicatorBase {
2423 enabled: false
2524
2625 onRootActionStateChanged: {
tests/mocks/Unity/Indicators/MenuItemFactory.qml → qml/Panel/Indicators/IndicatorsLight.qmlrenamed+14−14
@@ -1,5 +1,5 @@
11/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2014 Canonical Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU Lesser General Public License as published by
@@ -14,25 +14,25 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 *
1616 * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
17+ * Renato Araujo Oliveira Filho <renato@canonical.com>
1818 */
1919
2020import QtQuick 2.0
21−import Ubuntu.Components.ListItems 0.1 as ListItem
21+import Powerd 0.1
22+import Lights 0.1
2223
23−Item {
24− id: menuFactory
24+QtObject {
25+ id: root
2526
26− property var menuModel: null
27+ Component.onDestruction: Lights.state = Lights.Off
2728
28− Component {
29− id: standardMenu;
30− ListItem.Standard {
31− objectName: "standardMenu"
32− }
33− }
29+ // QtObject does not have children
30+ property var _connections: Connections {
31+ id: powerConnection
3432
35− function load(modelData) {
36− return standardMenu;
33+ target: Powerd
34+ onDisplayPowerStateChange: {
35+ Lights.state = (status === Powerd.Off) ? Lights.On : Lights.Off
36+ }
3737 }
3838}
plugins/Unity/Indicators/qml/MenuItemFactory.qml → qml/Panel/Indicators/MenuItemFactory.qmlrenamed+178−20
@@ -19,7 +19,8 @@
1919
2020import QtQuick 2.0
2121import Ubuntu.Settings.Menus 0.1 as Menus
22−import QMenuModel 0.1 as QMenuModel
22+import Ubuntu.Settings.Components 0.1 as SettingsComponents
23+import QMenuModel 0.1
2324import Utils 0.1 as Utils
2425import Ubuntu.Components.ListItems 0.1 as ListItems
2526import Ubuntu.Components 0.1
@@ -27,20 +28,23 @@ import Ubuntu.Components 0.1
2728Item {
2829 id: menuFactory
2930
31+ property var rootModel: null
3032 property var menuModel: null
3133
3234 property var _map: {
3335 "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
3436 "unity.widgets.systemsettings.tablet.switch" : switchMenu,
3537
36− "com.canonical.indicator.button" : buttonMenu,
37− "com.canonical.indicator.div" : separatorMenu,
38− "com.canonical.indicator.section" : sectionMenu,
39− "com.canonical.indicator.progress" : progressMenu,
40− "com.canonical.indicator.slider" : sliderMenu,
41− "com.canonical.indicator.switch" : switchMenu,
42− "com.canonical.indicator.alarm" : alarmMenu,
43− "com.canonical.indicator.appointment" : appointmentMenu,
38+ "com.canonical.indicator.button" : buttonMenu,
39+ "com.canonical.indicator.div" : separatorMenu,
40+ "com.canonical.indicator.section" : sectionMenu,
41+ "com.canonical.indicator.progress" : progressMenu,
42+ "com.canonical.indicator.slider" : sliderMenu,
43+ "com.canonical.indicator.switch" : switchMenu,
44+ "com.canonical.indicator.alarm" : alarmMenu,
45+ "com.canonical.indicator.appointment" : appointmentMenu,
46+ "com.canonical.indicator.transfer" : transferMenu,
47+ "com.canonical.indicator.button-section" : buttonSectionMenu,
4448
4549 "com.canonical.indicator.messages.messageitem" : messageItem,
4650 "com.canonical.indicator.messages.sourceitem" : groupedMessage,
@@ -65,6 +69,7 @@ Item {
6569
6670 Component {
6771 id: separatorMenu;
72+
6873 Menus.SeparatorMenu {
6974 objectName: "separatorMenu"
7075 }
@@ -72,6 +77,7 @@ Item {
7277
7378 Component {
7479 id: sliderMenu;
80+
7581 Menus.SliderMenu {
7682 objectName: "sliderMenu"
7783 property QtObject menuData: null
@@ -123,6 +129,7 @@ Item {
123129
124130 Component {
125131 id: buttonMenu;
132+
126133 Menus.ButtonMenu {
127134 objectName: "buttonMenu"
128135 property QtObject menuData: null
@@ -134,12 +141,12 @@ Item {
134141
135142 onTriggered: {
136143 menuModel.activate(menuIndex);
137− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
138144 }
139145 }
140146 }
141147 Component {
142148 id: sectionMenu;
149+
143150 Menus.SectionMenu {
144151 objectName: "sectionMenu"
145152 property QtObject menuData: null
@@ -152,6 +159,7 @@ Item {
152159
153160 Component {
154161 id: progressMenu;
162+
155163 Menus.ProgressValueMenu {
156164 objectName: "progressMenu"
157165 property QtObject menuData: null
@@ -166,7 +174,8 @@ Item {
166174
167175 Component {
168176 id: standardMenu;
169− ListItems.Standard {
177+
178+ Menus.StandardMenu {
170179 objectName: "standardMenu"
171180 property QtObject menuData: null
172181 property int menuIndex: -1
@@ -177,13 +186,13 @@ Item {
177186
178187 onTriggered: {
179188 menuModel.activate(menuIndex);
180− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
181189 }
182190 }
183191 }
184192
185193 Component {
186194 id: checkableMenu;
195+
187196 Menus.CheckableMenu {
188197 objectName: "checkableMenu"
189198 property QtObject menuData: null
@@ -195,7 +204,6 @@ Item {
195204
196205 onTriggered: {
197206 menuModel.activate(menuIndex);
198− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
199207 }
200208 }
201209 }
@@ -203,6 +211,7 @@ Item {
203211
204212 Component {
205213 id: switchMenu;
214+
206215 Menus.SwitchMenu {
207216 objectName: "switchMenu"
208217 property QtObject menuData: null
@@ -215,13 +224,13 @@ Item {
215224
216225 onTriggered: {
217226 menuModel.activate(menuIndex);
218− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
219227 }
220228 }
221229 }
222230
223231 Component {
224232 id: alarmMenu;
233+
225234 Menus.EventMenu {
226235 objectName: "alarmMenu"
227236 property QtObject menuData: null
@@ -259,6 +268,7 @@ Item {
259268
260269 Component {
261270 id: appointmentMenu;
271+
262272 Menus.EventMenu {
263273 objectName: "appointmentMenu"
264274 property QtObject menuData: null
@@ -298,6 +308,7 @@ Item {
298308
299309 Component {
300310 id: wifiSection;
311+
301312 Menus.SectionMenu {
302313 objectName: "wifiSection"
303314 property QtObject menuData: null
@@ -324,6 +335,7 @@ Item {
324335
325336 Component {
326337 id: accessPoint;
338+
327339 Menus.AccessPointMenu {
328340 objectName: "accessPoint"
329341 property QtObject menuData: null
@@ -331,7 +343,7 @@ Item {
331343 property int menuIndex: -1
332344 property var extendedData: menuData && menuData.ext || undefined
333345
334− property var strengthAction: QMenuModel.UnityMenuAction {
346+ property var strengthAction: UnityMenuAction {
335347 model: menuModel
336348 index: menuIndex
337349 name: getExtendedProperty(extendedData, "xCanonicalWifiApStrengthAction", "")
@@ -352,7 +364,6 @@ Item {
352364 }
353365 onTriggered: {
354366 menuModel.activate(menuIndex);
355− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
356367 }
357368
358369 function loadAttributes() {
@@ -440,6 +451,7 @@ Item {
440451
441452 Component {
442453 id: messageItem
454+
443455 MessageMenuItemFactory {
444456 objectName: "messageItem"
445457 menuModel: menuFactory.menuModel
@@ -448,6 +460,7 @@ Item {
448460
449461 Component {
450462 id: groupedMessage
463+
451464 Menus.GroupedMessageMenu {
452465 objectName: "groupedMessage"
453466 property QtObject menuData: null
@@ -469,7 +482,6 @@ Item {
469482 }
470483 onClicked: {
471484 menuModel.activate(menuIndex, true);
472− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
473485 }
474486 onDismissed: {
475487 menuModel.activate(menuIndex, false);
@@ -484,6 +496,7 @@ Item {
484496
485497 Component {
486498 id: mediaPayerMenu;
499+
487500 Menus.MediaPlayerMenu {
488501 objectName: "mediaPayerMenu"
489502 property QtObject menuData: null
@@ -510,6 +523,7 @@ Item {
510523
511524 Component {
512525 id: playbackItemMenu;
526+
513527 Menus.PlaybackItemMenu {
514528 objectName: "playbackItemMenu"
515529 property QtObject menuData: null
@@ -517,17 +531,17 @@ Item {
517531 property int menuIndex: -1
518532 property var extendedData: menuData && menuData.ext || undefined
519533
520− property var playAction: QMenuModel.UnityMenuAction {
534+ property var playAction: UnityMenuAction {
521535 model: menuModel
522536 index: menuIndex
523537 name: getExtendedProperty(extendedData, "xCanonicalPlayAction", "")
524538 }
525− property var nextAction: QMenuModel.UnityMenuAction {
539+ property var nextAction: UnityMenuAction {
526540 model: menuModel
527541 index: menuIndex
528542 name: getExtendedProperty(extendedData, "xCanonicalNextAction", "")
529543 }
530− property var previousAction: QMenuModel.UnityMenuAction {
544+ property var previousAction: UnityMenuAction {
531545 model: menuModel
532546 index: menuIndex
533547 name: getExtendedProperty(extendedData, "xCanonicalPreviousAction", "")
@@ -564,6 +578,150 @@ Item {
564578 }
565579 }
566580
581+ Component {
582+ id: transferMenu
583+
584+ Menus.TransferMenu {
585+ objectName: "transferMenu"
586+ id: transfer
587+ property QtObject menuData: null
588+ property var menuModel: menuFactory.menuModel
589+ property int menuIndex: -1
590+ property var extendedData: menuData && menuData.ext || undefined
591+ property var uid: getExtendedProperty(extendedData, "xCanonicalUid", undefined)
592+
593+ text: menuData && menuData.label || ""
594+ iconSource: menuData && menuData.icon || ""
595+ maximum: 1.0
596+ enabled: menuData && menuData.sensitive || false
597+ removable: true
598+ confirmRemoval: true
599+
600+ QDBusActionGroup {
601+ id: actionGroup
602+ busType: 1
603+ busName: rootModel.busName
604+ objectPath: rootModel.actions["indicator"]
605+
606+ property var activateAction: action("activate-transfer")
607+ property var cancelAction: action("cancel-transfer")
608+ property var transferStateAction: uid !== undefined ? action("transfer-state."+uid) : null
609+
610+ Component.onCompleted: actionGroup.start()
611+ }
612+
613+ property var transferState: {
614+ if (actionGroup.transferStateAction === null) return undefined;
615+ return actionGroup.transferStateAction.valid ? actionGroup.transferStateAction.state : undefined
616+ }
617+
618+ property var runningState : transferState !== undefined ? transferState["state"] : undefined
619+ property var secondsLeft : transferState !== undefined ? transferState["seconds-left"] : undefined
620+
621+ active: runningState !== undefined && runningState !== Menus.TransferState.Finished
622+ progress: transferState !== undefined ? transferState["percent"] : 0.0
623+
624+ // TODO - Should be in the SDK
625+ property var timeRemaining: {
626+ if (secondsLeft === undefined) return undefined;
627+
628+ var remaining = "";
629+ var hours = Math.floor(secondsLeft / (60 * 60));
630+ var minutes = Math.floor(secondsLeft / 60) % 60;
631+ var seconds = secondsLeft % 60;
632+ if (hours > 0) {
633+ remaining += hours + (hours == 1 ? " hour" : " hours");
634+ }
635+ if (minutes > 0) {
636+ if (remaining != "") remaining += ", ";
637+ remaining += minutes + (minutes == 1 ? " minute" : " minutes");
638+ }
639+ // don't include seconds if hours > 0
640+ if (hours == 0 && minutes < 5 && seconds > 0) {
641+ if (remaining != "") remaining += ", ";
642+ remaining += seconds + (seconds == 1 ? " second" : " seconds");
643+ }
644+ if (remaining == "")
645+ remaining = "0 seconds";
646+ return remaining + " remaining";
647+ }
648+
649+ stateText: {
650+ switch (runningState) {
651+ case Menus.TransferState.Queued:
652+ return i18n.tr("In queue…");
653+ case Menus.TransferState.Hashing:
654+ case Menus.TransferState.Processing:
655+ case Menus.TransferState.Running:
656+ return timeRemaining === undefined ? i18n.tr("Downloading") : timeRemaining;
657+ case Menus.TransferState.Paused:
658+ return i18n.tr("Paused, tap to resume");
659+ case Menus.TransferState.Canceled:
660+ return i18n.tr("Canceled");
661+ case Menus.TransferState.Finished:
662+ return i18n.tr("Finished");
663+ case Menus.TransferState.Error:
664+ return i18n.tr("Failed, tap to retry");
665+ }
666+ return "";
667+ }
668+
669+ onMenuModelChanged: {
670+ loadAttributes();
671+ }
672+ onMenuIndexChanged: {
673+ loadAttributes();
674+ }
675+ onTriggered: {
676+ actionGroup.activateAction.activate(uid);
677+ }
678+ onItemRemoved: {
679+ actionGroup.cancelAction.activate(uid);
680+ }
681+
682+ function loadAttributes() {
683+ if (!menuModel || menuIndex == -1) return;
684+ menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-uid': 'string'});
685+ }
686+ }
687+ }
688+
689+ Component {
690+ id: buttonSectionMenu;
691+
692+ ListItems.Standard {
693+ objectName: "buttonSectionMenu"
694+ property QtObject menuData: null
695+ property var menuModel: menuFactory.menuModel
696+ property int menuIndex: -1
697+ property var extendedData: menuData && menuData.ext || undefined
698+
699+ iconSource: menuData && menuData.icon || ""
700+ enabled: menuData && menuData.sensitive || false
701+ text: menuData && menuData.label || ""
702+ showDivider: false
703+
704+ onMenuModelChanged: {
705+ loadAttributes();
706+ }
707+ onMenuIndexChanged: {
708+ loadAttributes();
709+ }
710+ function loadAttributes() {
711+ if (!menuModel || menuIndex == -1) return;
712+ menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-extra-label': 'string'});
713+ }
714+
715+ control: Button {
716+ text: getExtendedProperty(extendedData, "xCanonicalExtraLabel", "")
717+
718+ onClicked: {
719+ menuModel.activate(menuIndex);
720+ }
721+ }
722+ }
723+ }
724+
567725 function load(modelData) {
568726 if (modelData.type !== undefined) {
569727 var component = _map[modelData.type];
plugins/Unity/Indicators/qml/MessageMenuItemFactory.qml → qml/Panel/Indicators/MessageMenuItemFactory.qmlrenamed+3−3
@@ -77,6 +77,7 @@ Item {
7777
7878 Component {
7979 id: simpleTextMessage
80+
8081 Menus.SimpleTextMessageMenu {
8182 id: message
8283 objectName: "simpleTextMessage"
@@ -94,7 +95,6 @@ Item {
9495
9596 onAppActivated: {
9697 menuModel.activate(menuIndex, true);
97− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
9898 }
9999 onDismissed: {
100100 menuModel.activate(menuIndex, false);
@@ -115,6 +115,7 @@ Item {
115115
116116 Component {
117117 id: textMessage
118+
118119 Menus.TextMessageMenu {
119120 id: message
120121 objectName: "textMessage"
@@ -142,7 +143,6 @@ Item {
142143
143144 onAppActivated: {
144145 menuModel.activate(menuIndex, true);
145− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
146146 }
147147 onDismissed: {
148148 menuModel.activate(menuIndex, false);
@@ -165,6 +165,7 @@ Item {
165165 }
166166 Component {
167167 id: snapDecision
168+
168169 Menus.SnapDecisionMenu {
169170 id: message
170171 objectName: "snapDecision"
@@ -201,7 +202,6 @@ Item {
201202
202203 onAppActivated: {
203204 menuModel.activate(menuIndex, true);
204− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
205205 }
206206 onDismissed: {
207207 menuModel.activate(menuIndex, false);
plugins/Unity/Indicators/qml/ModemInfoItem.qml → qml/Panel/Indicators/ModemInfoItem.qmlrenamed

The content is the same.

plugins/Unity/Indicators/qml/RemoveBackground.qml → qml/Panel/Indicators/RemoveBackground.qmlrenamed

The content is the same.

plugins/Unity/Indicators/qml/RoamingIndication.qml → qml/Panel/Indicators/RoamingIndication.qmlrenamed

The content is the same.

qml/Panel/Panel.qml+128−109
@@ -16,157 +16,176 @@
1616
1717import QtQuick 2.0
1818import Ubuntu.Components 0.1
19+import Unity.Application 0.1
1920import "../Components"
21+import "../Components/ListItems"
2022
2123Item {
2224 id: root
23− readonly property real panelHeight: units.gu(3) + units.dp(2)
24− property real indicatorsMenuWidth: (shell.width > units.gu(60)) ? units.gu(40) : shell.width
25− property alias indicators: indicatorsMenu
25+ readonly property real panelHeight: indicatorArea.y + d.indicatorHeight
26+ property alias indicators: __indicators
27+ property alias callHint: __callHint
2628 property bool fullscreenMode: false
27− property bool searchVisible: true
28−
29− readonly property real separatorLineHeight: leftSeparatorLine.height
30− readonly property real __panelMinusSeparatorLineHeight: panelHeight - separatorLineHeight
31−
32− signal searchClicked
33−
34− function hideIndicatorMenu(delay) {
35− if (delay !== undefined) {
36− hideTimer.interval = delay;
37− hideTimer.start();
38− } else {
39− indicatorsMenu.hide();
40− }
41− }
42−
43− Timer {
44− id: hideTimer
45− running: false
46− onTriggered: {
47− indicatorsMenu.hide();
48− }
49− }
50−
51− Connections {
52− target: indicatorsMenu
53− onShownChanged: hideTimer.stop()
54− }
55−
56− PanelBackground {
57− id: panelBackground
58− anchors {
59− left: parent.left
60− right: parent.right
61− }
62− height: __panelMinusSeparatorLineHeight
63− y: 0
64−
65− Behavior on y { StandardAnimation { duration: 500 } }
66− }
67−
68− PanelSeparatorLine {
69− id: leftSeparatorLine
70− anchors {
71− top: panelBackground.bottom
72− left: parent.left
73− right: indicatorsMenu.left
74− }
75− saturation: 1 - indicatorsMenu.unitProgress
76− }
7729
7830 Rectangle {
7931 id: darkenedArea
8032 property real darkenedOpacity: 0.6
8133 anchors {
34+ top: parent.top
35+ topMargin: panelHeight
8236 left: parent.left
8337 right: parent.right
84− top: panelBackground.bottom
8538 bottom: parent.bottom
8639 }
8740 color: "black"
88− opacity: indicatorsMenu.unitProgress * darkenedOpacity
41+ opacity: indicators.unitProgress * darkenedOpacity
42+
8943 MouseArea {
9044 anchors.fill: parent
91− enabled: indicatorsMenu.shown
92− onClicked: if (indicatorsMenu.fullyOpened) indicatorsMenu.hide();
45+ enabled: indicators.shown
46+ onClicked: if (indicators.fullyOpened) indicators.hide();
9347 }
9448 }
9549
96− Indicators {
97− id: indicatorsMenu
98− objectName: "indicators"
99−
100− anchors.right: parent.right
101− y: panelBackground.y
102− width: root.indicatorsMenuWidth
103− shown: false
104− panelHeight: __panelMinusSeparatorLineHeight
105− openedHeight: parent.height + (pinnedMode ? 0 : root.panelHeight)
106− pinnedMode: !fullscreenMode
107− overFlowWidth: search.state=="hidden" ? parent.width : parent.width - search.width
108− }
50+ Item {
51+ id: indicatorArea
52+ objectName: "indicatorArea"
10953
110− PanelSeparatorLine {
111− id: indicatorsSeparatorLine
112− visible: true
113− anchors {
114− left: indicatorsMenu.left
115− right: indicatorsMenu.right
54+ anchors.fill: parent
55+
56+ Behavior on anchors.topMargin { StandardAnimation {} }
57+
58+ BorderImage {
59+ id: dropShadow
60+ anchors {
61+ fill: indicators
62+ leftMargin: -units.gu(1)
63+ bottomMargin: -units.gu(1)
64+ }
65+ visible: indicators.height > indicators.panelHeight
66+ source: "graphics/rectangular_dropshadow.sci"
11667 }
117− y: indicatorsMenu.visualBottom
118− }
11968
120− BorderImage {
121− id: dropShadow
122− anchors {
123− top: indicators.top
124− bottom: indicatorsSeparatorLine.bottom
125− left: indicators.left
126− right: indicators.right
127− margins: -units.gu(1)
69+ VerticalThinDivider {
70+ id: indicatorDividor
71+ anchors {
72+ top: indicators.top
73+ bottom: indicators.bottom
74+ right: indicators.left
75+
76+ topMargin: indicatorArea.anchors.topMargin + indicators.panelHeight
77+ }
78+
79+ width: units.dp(2)
80+ source: "graphics/VerticalDivider.png"
81+ }
82+
83+ Rectangle {
84+ id: indicatorAreaBackground
85+ color: callHint.visible ? "green" : "black"
86+ anchors {
87+ top: parent.top
88+ left: parent.left
89+ right: parent.right
90+ }
91+ height: indicators.panelHeight
92+
93+ Behavior on color { ColorAnimation { duration: UbuntuAnimation.FastDuration } }
94+ }
95+
96+ PanelSeparatorLine {
97+ id: nonIndicatorAreaSeparatorLine
98+ anchors {
99+ top: indicatorAreaBackground.bottom
100+ left: parent.left
101+ right: indicators.left
102+ }
103+ saturation: 1 - indicators.unitProgress
104+ }
105+
106+ MouseArea {
107+ anchors {
108+ top: parent.top
109+ left: parent.left
110+ right: indicators.left
111+ }
112+ height: indicators.panelHeight
113+ enabled: callHint.visible
114+ onClicked: callHint.showLiveCall()
128115 }
129− visible: indicatorsMenu.height > indicatorsMenu.panelHeight
130− source: "graphics/rectangular_dropshadow.sci"
131− }
132116
133− SearchIndicator {
134− id: search
135− objectName: "search"
136− enabled: root.searchVisible
117+ Indicators {
118+ id: __indicators
119+ objectName: "indicators"
120+
121+ anchors {
122+ top: parent.top
123+ right: parent.right
124+ }
137125
138− state: {
139− if (parent.width < indicatorsMenu.width + width) {
140− if (indicatorsMenu.state != "initial") {
141− return "hidden";
126+ width: root.width
127+ shown: false
128+ panelHeight: units.gu(3)
129+ openedHeight: root.height
130+ overFlowWidth: {
131+ if (callHint.visible) {
132+ return Math.max(root.width - (callHint.width + units.gu(2)), 0)
142133 }
134+ return root.width
143135 }
144− if (root.searchVisible && !indicatorsMenu.showAll) {
145− return "visible";
136+
137+ enableHint: !callHint.active && !fullscreenMode
138+ showHintBottomMargin: fullscreenMode ? -panelHeight : 0
139+
140+ onShowTapped: {
141+ if (callHint.active) {
142+ callHint.showLiveCall();
143+ }
146144 }
145+ }
147146
148− return "hidden";
147+ ActiveCallHint {
148+ id: __callHint
149+ anchors {
150+ top: parent.top
151+ left: parent.left
152+ }
153+ height: indicators.panelHeight
154+ visible: active && indicators.state == "initial"
149155 }
150156
151− height: __panelMinusSeparatorLineHeight
152− anchors {
153− top: panelBackground.top
154− left: panelBackground.left
157+ PanelSeparatorLine {
158+ id: indicatorsSeparatorLine
159+ visible: true
160+ anchors {
161+ top: indicators.bottom
162+ left: indicatorDividor.left
163+ right: indicators.right
164+ }
155165 }
166+ }
156167
157− onClicked: root.searchClicked()
168+ QtObject {
169+ id: d
170+ readonly property real indicatorHeight: indicators.panelHeight + indicatorsSeparatorLine.height
158171 }
159172
160173 states: [
161174 State {
162− name: "in" //fully opaque and visible at top edge of screen
175+ name: "onscreen" //fully opaque and visible at top edge of screen
163176 when: !fullscreenMode
164− PropertyChanges { target: panelBackground; y: 0 }
177+ PropertyChanges {
178+ target: indicatorArea;
179+ anchors.topMargin: 0
180+ }
165181 },
166182 State {
167− name: "out" //pushed off screen
183+ name: "offscreen" //pushed off screen
168184 when: fullscreenMode
169− PropertyChanges { target: panelBackground; y: -panelHeight }
185+ PropertyChanges {
186+ target: indicatorArea;
187+ anchors.topMargin: indicators.state === "initial" ? -d.indicatorHeight : 0
188+ }
170189 }
171190 ]
172191}
qml/ScopeTool.qml−1
@@ -73,7 +73,6 @@ Rectangle {
7373 id: dashContent
7474
7575 model: filteredScopes
76− searchHistory: SearchHistoryModel { }
7776 property var scope: scopes.getScope(currentIndex)
7877
7978 anchors {
qml/Shell.qml+270−242
@@ -21,6 +21,7 @@ import Unity.Application 0.1
2121import Ubuntu.Components 0.1
2222import Ubuntu.Gestures 0.1
2323import Unity.Launcher 0.1
24+import Utils 0.1
2425import LightDM 0.1 as LightDM
2526import Powerd 0.1
2627import SessionBroadcast 0.1
@@ -30,10 +31,11 @@ import "Launcher"
3031import "Panel"
3132import "Components"
3233import "Notifications"
34+import "Stages"
3335import Unity.Notifications 1.0 as NotificationBackend
3436import Unity.Session 0.1
3537
36−FocusScope {
38+Item {
3739 id: shell
3840
3941 // this is only here to select the width / height of the window if not running fullscreen
@@ -46,7 +48,7 @@ FocusScope {
4648 property url background
4749 readonly property real panelHeight: panel.panelHeight
4850
49− property bool dashShown: dash.shown
51+ property bool dashShown: dash.shown && dash.available && underlay.visible
5052
5153 property bool sideStageEnabled: shell.width >= units.gu(100)
5254 readonly property string focusedApplicationId: ApplicationManager.focusedApplicationId
@@ -54,14 +56,10 @@ FocusScope {
5456 function activateApplication(appId) {
5557 if (ApplicationManager.findApplication(appId)) {
5658 ApplicationManager.requestFocusApplication(appId);
57− stages.show(true);
58− if (stages.locked && ApplicationManager.focusedApplicationId == appId) {
59− applicationsDisplayLoader.item.select(appId);
60− }
6159 } else {
6260 var execFlags = shell.sideStageEnabled ? ApplicationManager.NoFlag : ApplicationManager.ForceMainStage;
6361 ApplicationManager.startApplication(appId, execFlags);
64− stages.show(false);
62+ stages.show();
6563 }
6664 }
6765
@@ -88,82 +86,74 @@ FocusScope {
8886 id: volumeControl
8987 }
9088
91− Keys.onVolumeUpPressed: volumeControl.volumeUp()
92− Keys.onVolumeDownPressed: volumeControl.volumeDown()
89+ WindowKeysFilter {
90+ // Handle but do not filter out volume keys
91+ Keys.onVolumeUpPressed: { volumeControl.volumeUp(); event.accepted = false; }
92+ Keys.onVolumeDownPressed: { volumeControl.volumeDown(); event.accepted = false; }
9393
94− Item {
95− id: underlayClipper
96− anchors.fill: parent
97− anchors.rightMargin: stages.overlayWidth
98− clip: stages.overlayMode && !stages.painting
99−
100− InputFilterArea {
101− anchors.fill: parent
102− blockInput: parent.clip
94+ Keys.onPressed: {
95+ if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
96+ dialogs.onPowerKeyPressed();
97+ event.accepted = true;
98+ } else {
99+ event.accepted = false;
100+ }
103101 }
104102
105− Item {
106− id: underlay
107− objectName: "underlay"
108− anchors.fill: parent
109− anchors.rightMargin: -parent.anchors.rightMargin
103+ Keys.onReleased: {
104+ if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
105+ dialogs.onPowerKeyReleased();
106+ event.accepted = true;
107+ } else {
108+ event.accepted = false;
109+ }
110+ }
111+ }
110112
111− // Whether the underlay is fully covered by opaque UI elements.
112− property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
113+ Item {
114+ id: underlay
115+ objectName: "underlay"
116+ anchors.fill: parent
113117
114− // Whether the user should see the topmost application surface (if there's one at all).
115− readonly property bool applicationSurfaceShouldBeSeen: stages.shown && !stages.painting && !stages.overlayMode
118+ // Whether the underlay is fully covered by opaque UI elements.
119+ property bool fullyCovered: (panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth)
120+ || stages.fullyShown || greeterWrapper.fullyShown
121+ visible: !fullyCovered
122+
123+ Image {
124+ anchors.fill: dash
125+ source: shell.width > shell.height ? "Dash/graphics/paper_landscape.png" : "Dash/graphics/paper_portrait.png"
126+ fillMode: Image.PreserveAspectCrop
127+ horizontalAlignment: Image.AlignRight
128+ verticalAlignment: Image.AlignTop
129+ }
116130
117− // NB! Application surfaces are stacked behind the shell one. So they can only be seen by the user
118− // through the translucent parts of the shell surface.
119− visible: !fullyCovered && !applicationSurfaceShouldBeSeen
131+ Dash {
132+ id: dash
133+ objectName: "dash"
120134
121− Rectangle {
122− anchors.fill: parent
123− color: "black"
124− opacity: dash.disappearingAnimationProgress
125− }
135+ available: !LightDM.Greeter.active
136+ hides: [stages, launcher, panel.indicators]
137+ shown: disappearingAnimationProgress !== 1.0 && greeterWrapper.showProgress !== 1.0 &&
138+ !(panel.indicators.fullyOpened && !sideStageEnabled)
139+ enabled: disappearingAnimationProgress === 0.0 && greeterWrapper.showProgress === 0.0 && edgeDemo.dashEnabled
126140
127− Image {
128− anchors.fill: dash
129− source: shell.width > shell.height ? "Dash/graphics/paper_landscape.png" : "Dash/graphics/paper_portrait.png"
130− fillMode: Image.PreserveAspectCrop
131− horizontalAlignment: Image.AlignRight
132− verticalAlignment: Image.AlignTop
141+ anchors {
142+ fill: parent
143+ topMargin: panel.panelHeight
133144 }
134145
135− Dash {
136− id: dash
137− objectName: "dash"
146+ contentScale: 1.0 - 0.2 * disappearingAnimationProgress
147+ opacity: 1.0 - disappearingAnimationProgress
148+ property real disappearingAnimationProgress: stages.showProgress
138149
139− available: !greeter.shown && !lockscreen.shown
140− hides: [stages, launcher, panel.indicators]
141− shown: disappearingAnimationProgress !== 1.0 && greeterWrapper.showProgress !== 1.0
142− enabled: disappearingAnimationProgress === 0.0 && greeterWrapper.showProgress === 0.0 && edgeDemo.dashEnabled
143−
144− anchors {
145− fill: parent
146− topMargin: panel.panelHeight
147− }
148−
149− contentScale: 1.0 - 0.2 * disappearingAnimationProgress
150− opacity: 1.0 - disappearingAnimationProgress
151− property real disappearingAnimationProgress: {
152− if (stages.overlayMode) {
153− return 0;
154− } else {
155− return stages.showProgress
156− }
157− }
158−
159− // FIXME: only necessary because stages.showProgress is not animated
160− Behavior on disappearingAnimationProgress { SmoothedAnimation { velocity: 5 }}
161− }
150+ // FIXME: only necessary because stages.showProgress is not animated
151+ Behavior on disappearingAnimationProgress { SmoothedAnimation { velocity: 5 }}
162152 }
163153 }
164154
165155 EdgeDragArea {
166− id: stagesDragHandle
156+ id: stagesDragArea
167157 direction: Direction.Leftwards
168158
169159 anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
@@ -173,20 +163,20 @@ FocusScope {
173163
174164 onTouchXChanged: {
175165 if (status == DirectionalDragArea.Recognized) {
176− if (ApplicationManager.count == 0) {
177− progress = Math.max(stages.width - stagesDragHandle.width + touchX, stages.width * .3)
166+ if (ApplicationManager.empty) {
167+ progress = Math.max(stages.width - stagesDragArea.width + touchX, stages.width * .3);
178168 } else {
179− progress = stages.width - stagesDragHandle.width + touchX
169+ progress = stages.width - stagesDragArea.width + touchX;
180170 }
181171 }
182172 }
183173
184174 onDraggingChanged: {
185175 if (!dragging) {
186− if (ApplicationManager.count > 0 && progress < stages.width - units.gu(10)) {
187− stages.show(true)
176+ if (!ApplicationManager.empty && progress < stages.width - units.gu(10)) {
177+ stages.show();
188178 }
189− stagesDragHandle.progress = stages.width;
179+ stagesDragArea.progress = Qt.binding(function () { return stages.width; });
190180 }
191181 }
192182 }
@@ -197,98 +187,85 @@ FocusScope {
197187 width: parent.width
198188 height: parent.height
199189
190+ visible: !fullyHidden && !ApplicationManager.empty
191+
200192 x: {
201193 if (shown) {
202− if (overlayMode || locked) {
194+ if (locked || greeter.fakeActiveForApp !== "") {
203195 return 0;
204196 }
205− return launcher.progress
197+ return launcher.progress;
206198 } else {
207− return stagesDragHandle.progress
199+ return stagesDragArea.progress
208200 }
209201 }
210−
211202 Behavior on x { SmoothedAnimation { velocity: 600; duration: UbuntuAnimation.FastDuration } }
212203
213204 property bool shown: false
205+ onShownChanged: {
206+ if (shown) {
207+ if (ApplicationManager.count > 0) {
208+ ApplicationManager.focusApplication(ApplicationManager.get(0).appId);
209+ }
210+ } else {
211+ if (ApplicationManager.focusedApplicationId) {
212+ ApplicationManager.updateScreenshot(ApplicationManager.focusedApplicationId);
213+ ApplicationManager.unfocusCurrentApplication();
214+ }
215+ }
216+ }
214217
215− property real showProgress: overlayMode ? 0 : MathUtils.clamp(1 - x / shell.width, 0, 1)
218+ // Avoid a silent "divide by zero -> NaN" situation during init as shell.width will be
219+ // zero. That breaks the property binding and the function won't be reevaluated once
220+ // shell.width is set, with the NaN result staying there for good.
221+ property real showProgress: shell.width ? MathUtils.clamp(1 - x / shell.width, 0, 1) : 0
216222
217223 property bool fullyShown: x == 0
218224 property bool fullyHidden: x == width
219225
220− property bool painting: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.painting : false
221− property bool fullscreen: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.fullscreen : false
222− property bool overlayMode: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.overlayMode : false
223− property int overlayWidth: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.overlayWidth : false
224226 property bool locked: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.locked : false
225227
226− function show(focusApp) {
228+ // It might technically not be fullyShown but visually it just looks so.
229+ property bool roughlyFullyShown: x >= 0 && x <= units.gu(1)
230+
231+ function show() {
227232 shown = true;
228− panel.indicators.hide();
229− edgeDemo.stopDemo();
230− greeter.hide();
231− if (!ApplicationManager.focusedApplicationId && ApplicationManager.count > 0 && focusApp) {
232− ApplicationManager.focusApplication(ApplicationManager.get(0).appId);
233− }
234233 }
235234
236235 function hide() {
237236 shown = false;
238− if (ApplicationManager.focusedApplicationId) {
239− ApplicationManager.unfocusCurrentApplication();
240− }
241237 }
242238
243239 Connections {
244240 target: ApplicationManager
245−
246241 onFocusRequested: {
247− stages.show(true);
242+ if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
243+ lockscreen.show();
244+ }
245+ greeter.hide();
246+ stages.show();
248247 }
249248
250249 onFocusedApplicationIdChanged: {
251− if (ApplicationManager.focusedApplicationId.length > 0) {
252− stages.show(false);
253− } else {
254− if (!stages.overlayMode) {
255− stages.hide();
256− }
250+ if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== ApplicationManager.focusedApplicationId) {
251+ lockscreen.show();
257252 }
253+ panel.indicators.hide();
258254 }
259255
260256 onApplicationAdded: {
261− stages.show(false);
262− }
263−
264− onApplicationRemoved: {
265− if (ApplicationManager.focusedApplicationId.length == 0) {
266− stages.hide();
257+ if (greeter.shown) {
258+ greeter.hide();
267259 }
268− }
269− }
270−
271− Connections {
272− target: DBusUnitySessionService
273−
274− function closeAllApps() {
275− while (true) {
276− var app = ApplicationManager.get(0);
277− if (app === null) {
278− break;
279− }
280− ApplicationManager.stopApplication(app.appId);
260+ if (!stages.shown) {
261+ stages.show();
281262 }
282263 }
283264
284− onLogoutRequested: {
285− // TODO: Display a dialog to ask the user to confirm.
286− DBusUnitySessionService.Logout();
287− }
288−
289− onLogoutReady: {
290− closeAllApps();
291− Qt.quit();
265+ onEmptyChanged: {
266+ if (ApplicationManager.empty) {
267+ stages.hide();
268+ }
292269 }
293270 }
294271
@@ -296,22 +273,61 @@ FocusScope {
296273 id: applicationsDisplayLoader
297274 anchors.fill: parent
298275
299− source: shell.sideStageEnabled ? "Stages/StageWithSideStage.qml" : "Stages/PhoneStage.qml"
276+ source: shell.sideStageEnabled ? "Stages/TabletStage.qml" : "Stages/PhoneStage.qml"
300277
301278 Binding {
302279 target: applicationsDisplayLoader.item
303− property: "moving"
304− value: !stages.fullyShown
280+ property: "objectName"
281+ value: "stage"
305282 }
306283 Binding {
307284 target: applicationsDisplayLoader.item
308− property: "shown"
309− value: stages.shown
285+ property: "dragAreaWidth"
286+ value: shell.edgeSize
310287 }
311288 Binding {
312289 target: applicationsDisplayLoader.item
313− property: "dragAreaWidth"
314− value: shell.edgeSize
290+ property: "maximizedAppTopMargin"
291+ // Not just using panel.panelHeight as that changes depending on the focused app.
292+ value: panel.indicators.panelHeight
293+ }
294+ Binding {
295+ target: applicationsDisplayLoader.item
296+ property: "interactive"
297+ value: stages.roughlyFullyShown && !greeter.shown && !lockscreen.shown
298+ && panel.indicators.fullyClosed
299+ }
300+ Binding {
301+ target: applicationsDisplayLoader.item
302+ property: "spreadEnabled"
303+ value: greeter.fakeActiveForApp === "" // to support emergency dialer hack
304+ }
305+ }
306+ }
307+
308+ InputMethod {
309+ id: inputMethod
310+ objectName: "inputMethod"
311+ anchors { fill: parent; topMargin: panel.panelHeight }
312+ z: notifications.useModal || panel.indicators.shown ? overlay.z + 1 : overlay.z - 1
313+ }
314+
315+ Connections {
316+ target: SurfaceManager
317+ onSurfaceCreated: {
318+ if (surface.type == MirSurfaceItem.InputMethod) {
319+ inputMethod.surface = surface;
320+ }
321+ }
322+
323+ onSurfaceDestroyed: {
324+ if (inputMethod.surface == surface) {
325+ inputMethod.surface = null;
326+ surface.parent = null;
327+ }
328+ if (!surface.parent) {
329+ // there's no one displaying it. delete it right away
330+ surface.release();
315331 }
316332 }
317333 }
@@ -328,7 +344,7 @@ FocusScope {
328344 showAnimation: StandardAnimation { property: "opacity"; to: 1 }
329345 hideAnimation: StandardAnimation { property: "opacity"; to: 0 }
330346 y: panel.panelHeight
331− x: required ? 0 : - width
347+ visible: required
332348 width: parent.width
333349 height: parent.height - panel.panelHeight
334350 background: shell.background
@@ -337,6 +353,13 @@ FocusScope {
337353
338354 onEntered: LightDM.Greeter.respond(passphrase);
339355 onCancel: greeter.show()
356+ onEmergencyCall: {
357+ greeter.fakeActiveForApp = "dialer-app"
358+ shell.activateApplication("dialer-app")
359+ lockscreen.hide()
360+ }
361+
362+ onShownChanged: if (shown) greeter.fakeActiveForApp = ""
340363
341364 Component.onCompleted: {
342365 if (LightDM.Users.count == 1) {
@@ -348,6 +371,8 @@ FocusScope {
348371 Connections {
349372 target: LightDM.Greeter
350373
374+ onShowGreeter: greeter.show()
375+
351376 onShowPrompt: {
352377 if (LightDM.Users.count == 1) {
353378 // TODO: There's no better way for now to determine if its a PIN or a passphrase.
@@ -367,12 +392,19 @@ FocusScope {
367392 }
368393 if (LightDM.Greeter.authenticated) {
369394 lockscreen.hide();
395+ greeter.login();
370396 } else {
371397 lockscreen.clear(true);
372398 }
373399 }
374400 }
375401
402+ Binding {
403+ target: LightDM.Greeter
404+ property: "active"
405+ value: greeter.shown || lockscreen.shown || greeter.fakeActiveForApp != ""
406+ }
407+
376408 Rectangle {
377409 anchors.fill: parent
378410 color: "black"
@@ -392,12 +424,18 @@ FocusScope {
392424 StandardAnimation {}
393425 }
394426
427+ property bool fullyShown: showProgress === 1.0
395428 readonly property real showProgress: MathUtils.clamp((1 - x/width) + greeter.showProgress - 1, 0, 1)
429+ onShowProgressChanged: if (LightDM.Greeter.promptless && showProgress === 0) greeter.login()
396430
397431 Greeter {
398432 id: greeter
399433 objectName: "greeter"
400434
435+ signal sessionStarted() // helpful for tests
436+
437+ property string fakeActiveForApp: ""
438+
401439 available: true
402440 hides: [launcher, panel.indicators]
403441 shown: true
@@ -409,14 +447,28 @@ FocusScope {
409447
410448 dragHandleWidth: shell.edgeSize
411449
450+ function login() {
451+ enabled = false;
452+ LightDM.Greeter.startSessionSync();
453+ sessionStarted();
454+ greeter.hide();
455+ lockscreen.hide();
456+ launcher.hide();
457+ enabled = true;
458+ }
459+
412460 onShownChanged: {
413461 if (shown) {
414462 lockscreen.reset();
463+ if (!LightDM.Greeter.promptless) {
464+ lockscreen.show();
465+ }
415466 // If there is only one user, we start authenticating with that one here.
416467 // If there are more users, the Greeter will handle that
417468 if (LightDM.Users.count == 1) {
418469 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
419470 }
471+ greeter.fakeActiveForApp = "";
420472 greeter.forceActiveFocus();
421473 }
422474 }
@@ -439,12 +491,6 @@ FocusScope {
439491 }
440492 }
441493
442− InputFilterArea {
443− anchors.fill: parent
444− blockInput: ApplicationManager.focusedApplicationId.length === 0 || greeter.shown || lockscreen.shown || launcher.shown
445− || panel.indicators.shown
446− }
447−
448494 Connections {
449495 id: powerConnection
450496 target: Powerd
@@ -466,58 +512,69 @@ FocusScope {
466512 }
467513
468514 function showHome() {
469− var animate = !greeter.shown && !stages.shown
470− greeter.hide()
515+ if (edgeDemo.running) {
516+ return
517+ }
518+
519+ if (LightDM.Greeter.active) {
520+ if (!LightDM.Greeter.promptless) {
521+ lockscreen.show()
522+ }
523+ greeter.hide()
524+ }
525+
526+ var animate = !LightDM.Greeter.active && !stages.shown
471527 dash.setCurrentScope("clickscope", animate, false)
472528 stages.hide()
473529 }
474530
475− function hideIndicatorMenu(delay) {
476− panel.hideIndicatorMenu(delay);
531+ function showDash() {
532+ if (LightDM.Greeter.active && !LightDM.Greeter.promptless) {
533+ return;
534+ }
535+
536+ if (!stages.locked) {
537+ stages.hide();
538+ launcher.fadeOut();
539+ } else {
540+ launcher.switchToNextState("visible");
541+ }
542+
543+ if (greeter.shown) {
544+ greeter.hideRight();
545+ launcher.fadeOut();
546+ }
477547 }
478548
479549 Item {
480550 id: overlay
551+ z: 10
481552
482553 anchors.fill: parent
483554
484555 Panel {
485556 id: panel
557+ objectName: "panel"
486558 anchors.fill: parent //because this draws indicator menus
487− indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
488559 indicators {
489560 hides: [launcher]
490− available: edgeDemo.panelEnabled
561+ available: edgeDemo.panelEnabled && greeter.fakeActiveForApp === ""
491562 contentEnabled: edgeDemo.panelContentEnabled
563+ width: parent.width > units.gu(60) ? units.gu(40) : parent.width
564+ panelHeight: units.gu(3)
492565 }
493− property string focusedAppId: ApplicationManager.focusedApplicationId
494− property var focusedApplication: ApplicationManager.findApplication(focusedAppId)
495− fullscreenMode: focusedApplication && stages.fullscreen && !greeter.shown && !lockscreen.shown
496− searchVisible: !greeter.shown && !lockscreen.shown && dash.shown && dash.searchable
497566
498− InputFilterArea {
499− anchors {
500− top: parent.top
501− left: parent.left
502− right: parent.right
503− }
504− height: (panel.fullscreenMode) ? shell.edgeSize : panel.panelHeight
505− blockInput: true
506− }
507− }
567+ property bool topmostApplicationIsFullscreen:
568+ ApplicationManager.focusedApplicationId &&
569+ ApplicationManager.findApplication(ApplicationManager.focusedApplicationId).fullscreen
508570
509− InputFilterArea {
510− blockInput: launcher.shown
511− anchors {
512− top: parent.top
513− bottom: parent.bottom
514− left: parent.left
515− }
516− width: launcher.width
571+ fullscreenMode: (stages.roughlyFullyShown && topmostApplicationIsFullscreen
572+ && !LightDM.Greeter.active) || greeter.fakeActiveForApp !== ""
517573 }
518574
519575 Launcher {
520576 id: launcher
577+ objectName: "launcher"
521578
522579 readonly property bool dashSwipe: progress > 0
523580
@@ -525,28 +582,15 @@ FocusScope {
525582 anchors.bottom: parent.bottom
526583 width: parent.width
527584 dragAreaWidth: shell.edgeSize
528− available: edgeDemo.launcherEnabled
585+ available: edgeDemo.launcherEnabled && greeter.fakeActiveForApp === ""
529586
530− onShowDashHome: {
531− if (edgeDemo.running)
532− return;
533−
534− showHome()
535− }
536− onDash: {
537− if (stages.shown && !stages.overlayMode) {
538− if (!stages.locked) {
539− stages.hide();
540− launcher.hide();
541− }
542− }
543− if (greeter.shown) {
544− greeter.hideRight();
545− launcher.hide();
546− }
547− }
587+ onShowDashHome: showHome()
588+ onDash: showDash()
548589 onDashSwipeChanged: if (dashSwipe && stages.shown) dash.setCurrentScope("clickscope", false, true)
549590 onLauncherApplicationSelected: {
591+ if (greeter.fakeActiveForApp !== "") {
592+ lockscreen.show()
593+ }
550594 if (!edgeDemo.running)
551595 shell.activateApplication(appId)
552596 }
@@ -568,11 +612,6 @@ FocusScope {
568612 MouseArea {
569613 anchors.fill: parent
570614 }
571−
572− InputFilterArea {
573− anchors.fill: parent
574− blockInput: modalNotificationBackground.visible
575− }
576615 }
577616
578617 Notifications {
@@ -581,12 +620,10 @@ FocusScope {
581620 model: NotificationBackend.Model
582621 margin: units.gu(1)
583622
584− anchors {
585− top: parent.top
586− right: parent.right
587− bottom: parent.bottom
588− topMargin: panel.panelHeight
589− }
623+ y: panel.panelHeight
624+ width: parent.width
625+ height: parent.height - panel.panelHeight
626+
590627 states: [
591628 State {
592629 name: "narrow"
@@ -600,62 +637,31 @@ FocusScope {
600637 PropertyChanges { target: notifications; width: units.gu(38) }
601638 }
602639 ]
603−
604− InputFilterArea {
605− anchors { left: parent.left; right: parent.right }
606− height: parent.contentHeight
607− blockInput: height > 0
608− }
609640 }
610641 }
611642
612− focus: true
613− onFocusChanged: if (!focus) forceActiveFocus();
614−
615− InputFilterArea {
616− anchors {
617− top: parent.top
618− bottom: parent.bottom
619− left: parent.left
620− }
621− width: shell.edgeSize
622− blockInput: true
623− }
624−
625− InputFilterArea {
626− anchors {
627− top: parent.top
628− bottom: parent.bottom
629− right: parent.right
630− }
631− width: shell.edgeSize
632− blockInput: true
633− }
634−
635643 Binding {
636644 target: i18n
637645 property: "domain"
638646 value: "unity8"
639647 }
640648
641− OSKController {
642− anchors.topMargin: panel.panelHeight
643− anchors.fill: parent // as needs to know the geometry of the shell
644− }
645−
646− //FIXME: This should be handled in the input stack, keyboard shouldnt propagate
647− MouseArea {
648− anchors.bottom: parent.bottom
649− anchors.left: parent.left
650− anchors.right: parent.right
651− height: ApplicationManager.keyboardVisible ? ApplicationManager.keyboardHeight : 0
652−
653− enabled: ApplicationManager.keyboardVisible
649+ Dialogs {
650+ id: dialogs
651+ anchors.fill: parent
652+ z: overlay.z + 10
653+ onPowerOffClicked: {
654+ shutdownFadeOutRectangle.enabled = true;
655+ shutdownFadeOutRectangle.visible = true;
656+ shutdownFadeOut.start();
657+ }
654658 }
655659
656660 Label {
661+ id: alphaDisclaimerLabel
657662 anchors.centerIn: parent
658663 visible: ApplicationManager.fake ? ApplicationManager.fake : false
664+ z: dialogs.z + 10
659665 text: "EARLY ALPHA\nNOT READY FOR USE"
660666 color: "lightgrey"
661667 opacity: 0.2
@@ -669,6 +675,7 @@ FocusScope {
669675
670676 EdgeDemo {
671677 id: edgeDemo
678+ z: alphaDisclaimerLabel.z + 10
672679 greeter: greeter
673680 launcher: launcher
674681 dash: dash
@@ -680,4 +687,25 @@ FocusScope {
680687 target: SessionBroadcast
681688 onShowHome: showHome()
682689 }
690+
691+ Rectangle {
692+ id: shutdownFadeOutRectangle
693+ z: edgeDemo.z + 10
694+ enabled: false
695+ visible: false
696+ color: "black"
697+ anchors.fill: parent
698+ opacity: 0.0
699+ NumberAnimation on opacity {
700+ id: shutdownFadeOut
701+ from: 0.0
702+ to: 1.0
703+ onStopped: {
704+ if (shutdownFadeOutRectangle.enabled && shutdownFadeOutRectangle.visible) {
705+ DBusUnitySessionService.Shutdown();
706+ }
707+ }
708+ }
709+ }
710+
683711}
qml/Stages/Animations/BaseSurfaceAnimation.qmlnew file+93
@@ -0,0 +1,93 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+
19+/* This is the base case for surface animations, used when adding/removing * child surfaces.
20+ * The class is meant to be overridden and changes/animations provided for state changes.
21+ * NB. It is important to release the surface at the end of the "out" animation.
22+ *
23+ * Example - Simple fade in/out
24+ *
25+ * BaseSurfaceAnimation {
26+ * outChanges: [ PropertyChanges { target: animation.surface; opacity: 0.0 } ]
27+ * outAnimations: [
28+ SequentialAnimation {
29+ * NumberAnimation { target: animation.surface; property: "opacity"; duration: 300 }
30+ * ScriptAction { script: { if (animation.parent.removing) animation.surface.release(); } }
31+ * }
32+ * ]
33+ *
34+ * inChanges: [ PropertyChanges { target: animation.surface; opacity: 1.0 } ]
35+ * inAnimations: [ NumberAnimation { target: animation.surface; property: "opacity"; duration: 300 } ]
36+ * }
37+ */
38+Item {
39+ id: base
40+ property Item surface: null
41+
42+ // changes applied when state changes to "in"
43+ property list<QtObject> outChanges
44+ // transition animations when changing state to "in"
45+ property list<QtObject> outAnimations
46+
47+ // changes applied when state changes to "out"
48+ property list<QtObject> inChanges
49+ // transition animations when changing state to "out"
50+ property list<QtObject> inAnimations
51+
52+ function start() {
53+ // "prep" state forces outChanges without transition animations.
54+ state = "prep"
55+ state = "in";
56+ }
57+ function end() {
58+ state = "out";
59+ }
60+
61+ states: [
62+ State {
63+ name: "baseAnimation"
64+ PropertyChanges { target: base.surface; anchors.fill: undefined }
65+ },
66+
67+ State {
68+ name: "prep"
69+ extend: "baseAnimation"
70+ changes: outChanges
71+ },
72+ State {
73+ name: "out"
74+ extend: "prep"
75+ },
76+ State {
77+ name: "in"
78+ extend: "baseAnimation"
79+ changes: inChanges
80+ }
81+ ]
82+
83+ transitions: [
84+ Transition {
85+ to: "out"
86+ animations: outAnimations
87+ },
88+ Transition {
89+ to: "in"
90+ animations: inAnimations
91+ }
92+ ]
93+}
qml/Stages/Animations/DarkenAndFadeInAnimation.qmlnew file+48
@@ -0,0 +1,48 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 1.1
19+
20+BaseSurfaceAnimation {
21+ id: animation
22+
23+ property Rectangle darkenItem: Rectangle {
24+ parent: animation.surface.parent
25+ anchors.fill: parent
26+ color: Qt.rgba(0,0,0,0.0)
27+ }
28+
29+ outChanges: [ PropertyChanges { target: animation.surface; opacity: 0.0 } ]
30+ outAnimations: [
31+ SequentialAnimation {
32+ UbuntuNumberAnimation { target: animation.surface; property: "opacity"; duration: UbuntuAnimation.FastDuration }
33+ ColorAnimation { target: darkenItem; duration: UbuntuAnimation.FastDuration }
34+ ScriptAction { script: { if (animation.parent.removing) animation.surface.release(); } }
35+ }
36+ ]
37+
38+ inChanges: [
39+ PropertyChanges { target: darkenItem; color: Qt.rgba(0,0,0,0.7) },
40+ PropertyChanges { target: animation.surface; opacity: 1.0 }
41+ ]
42+ inAnimations: [
43+ SequentialAnimation {
44+ ColorAnimation { target: darkenItem; duration: UbuntuAnimation.FastDuration }
45+ UbuntuNumberAnimation { target: animation.surface; property: "opacity"; duration: UbuntuAnimation.FastDuration }
46+ }
47+ ]
48+}
qml/Stages/Animations/SwipeFromBottomAnimation.qmlnew file+48
@@ -0,0 +1,48 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+
19+BaseSurfaceAnimation {
20+ id: animation
21+
22+ outChanges: [ AnchorChanges { target: animation.surface; anchors.top: animation.parent.bottom } ]
23+ outAnimations: [
24+ SequentialAnimation {
25+ PropertyAction { target: animation.parent; property: "clip"; value: true }
26+ AnchorAnimation { easing.type: Easing.InOutQuad; duration: 400 }
27+ PropertyAction { target: animation.surface; property: "visible"; value: !animation.parent.removing }
28+ PropertyAction { target: animation.parent; property: "clip"; value: false }
29+ ScriptAction { script: { if (animation.parent.removing) animation.surface.release(); } }
30+ }
31+ ]
32+
33+ inChanges: [
34+ AnchorChanges {
35+ target: animation.surface;
36+ anchors.top: animation.parent.top
37+ anchors.right: undefined
38+ anchors.bottom: undefined
39+ anchors.left: undefined
40+ } ]
41+ inAnimations: [
42+ SequentialAnimation {
43+ PropertyAction { target: animation.parent; property: "clip"; value: true }
44+ AnchorAnimation { easing.type: Easing.InOutQuad; duration: 400 }
45+ PropertyAction { target: animation.parent; property: "clip"; value: false }
46+ }
47+ ]
48+}
qml/Stages/Animations/SwipeUpAnimation.qmlnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+
19+BaseSurfaceAnimation {
20+ id: animation
21+
22+ outAnimations: [
23+ SequentialAnimation {
24+ PropertyAction { target: animation.parent; property: "clip"; value: true }
25+ PropertyAction { target: animation.surface; property: "visible"; value: true }
26+ AnchorAnimation { easing.type: Easing.InOutQuad; duration: 400 }
27+ PropertyAction { target: animation.parent; property: "clip"; value: false }
28+ ScriptAction { script: { if (animation.parent.removing) animation.surface.release(); } }
29+ }
30+ ]
31+
32+ inChanges: [
33+ AnchorChanges {
34+ target: animation.surface;
35+ anchors.top: undefined
36+ anchors.right: undefined
37+ anchors.bottom: animation.parent.top
38+ anchors.left: undefined
39+ }
40+ ]
41+ inAnimations: [
42+ SequentialAnimation {
43+ PropertyAction { target: animation.parent; property: "clip"; value: true }
44+ AnchorAnimation { easing.type: Easing.InOutQuad; duration: 400 }
45+ PropertyAction { target: animation.surface; property: "visible"; value: false}
46+ PropertyAction { target: animation.parent; property: "clip"; value: false }
47+ }
48+ ]
49+}
qml/Stages/PhoneStage.qml+171−251
@@ -25,87 +25,51 @@ Item {
2525 id: root
2626
2727 // Controls to be set from outside
28− property bool shown: false
29− property bool moving: false
3028 property int dragAreaWidth
29+ property real maximizedAppTopMargin
30+ property bool interactive
31+ property bool spreadEnabled: true // If false, animations and right edge will be disabled
3132
3233 // State information propagated to the outside
33− readonly property bool painting: mainScreenshotImage.visible || fadeInScreenshotImage.visible || appSplash.visible || spreadView.visible
34− property bool fullscreen: priv.focusedApplication ? priv.focusedApplication.fullscreen : false
35− property bool locked: spreadView.visible
36−
37− // Not used for PhoneStage, only useful for SideStage and similar
38− property bool overlayMode: false
39− property int overlayWidth: 0
34+ readonly property bool locked: spreadView.phase == 2
4035
4136 function select(appId) {
42− spreadView.snapTo(priv.indexOf(appId))
37+ spreadView.snapTo(priv.indexOf(appId));
4338 }
4439
45− onMovingChanged: {
46− if (moving) {
47− if (ApplicationManager.focusedApplicationId) {
48− priv.requestNewScreenshot();
49− } else {
50− mainScreenshotImage.anchors.leftMargin = 0;
51− mainScreenshotImage.source = ApplicationManager.get(0).screenshot;
52− mainScreenshotImage.visible = true;
53− }
54− } else {
55− mainScreenshotImage.visible = false;
56− }
40+ onWidthChanged: {
41+ spreadView.selectedIndex = -1;
42+ spreadView.phase = 0;
43+ spreadView.contentX = -spreadView.shift;
5744 }
5845
5946 Connections {
6047 target: ApplicationManager
6148
6249 onFocusRequested: {
63− if (spreadView.visible) {
50+ if (spreadView.phase > 0) {
6451 spreadView.snapTo(priv.indexOf(appId));
6552 } else {
6653 priv.switchToApp(appId);
6754 }
6855 }
6956
70− onFocusedApplicationIdChanged: {
71− if (ApplicationManager.focusedApplicationId.length > 0) {
72− if (priv.secondApplicationStarting || priv.applicationStarting) {
73− appSplashTimer.restart();
74− } else {
75− var application = priv.focusedApplication;
76− root.fullscreen = application.fullscreen;
77− mainScreenshotImage.source = application.screenshot;
78− }
57+ onApplicationAdded: {
58+ if (spreadView.phase == 2) {
59+ spreadView.snapTo(ApplicationManager.count - 1);
7960 } else {
80− spreadView.selectedIndex = -1;
8161 spreadView.phase = 0;
8262 spreadView.contentX = -spreadView.shift;
83− }
84− }
85−
86− onApplicationAdded: {
87− if (!priv.focusedApplication) {
88− mainScreenshotImage.source = "";
89− mainScreenshotImage.visible = false;
90− priv.applicationStarting = true;
91− } else {
92− mainScreenshotImage.source = "";
93− priv.newFocusedAppId = appId;
94− priv.secondApplicationStarting = true;
95− priv.requestNewScreenshot();
96− }
97−
98− if (spreadView.visible) {
99− spreadView.snapTo(0);
63+ priv.switchToApp(appId);
10064 }
10165 }
10266
10367 onApplicationRemoved: {
104− if (ApplicationManager.count == 0) {
105− mainScreenshotImage.source = ""
106− mainScreenshotImage.visible = false;
107− } else {
108− mainScreenshotImage.source = ApplicationManager.get(0).screenshot;
68+ // Unless we're closing the app ourselves in the spread,
69+ // lets make sure the spread doesn't mess up by the changing app list.
70+ if (spreadView.closingIndex == -1) {
71+ spreadView.phase = 0;
72+ spreadView.contentX = -spreadView.shift;
10973 }
11074 }
11175 }
@@ -115,36 +79,11 @@ Item {
11579
11680 property string focusedAppId: ApplicationManager.focusedApplicationId
11781 property var focusedApplication: ApplicationManager.findApplication(focusedAppId)
118− property url focusedScreenshot: focusedApplication ? focusedApplication.screenshot : ""
119−
120− property bool waitingForScreenshot: false
121−
122− property bool applicationStarting: false
123− property bool secondApplicationStarting: false
124−
125− property string newFocusedAppId
126−
127− onFocusedScreenshotChanged: {
128− if (root.moving && priv.waitingForScreenshot) {
129− mainScreenshotImage.anchors.leftMargin = 0;
130− mainScreenshotImage.source = priv.focusedScreenshot
131− mainScreenshotImage.visible = true;
132− } else if (priv.secondApplicationStarting && priv.waitingForScreenshot) {
133− applicationSwitchingAnimation.start();
134− }
135− waitingForScreenshot = false;
136− }
137−
138− function requestNewScreenshot() {
139− waitingForScreenshot = true;
140− ApplicationManager.updateScreenshot(focusedAppId);
141− }
14282
14383 function switchToApp(appId) {
14484 if (priv.focusedAppId) {
145− priv.newFocusedAppId = appId;
146− root.fullscreen = ApplicationManager.findApplication(appId).fullscreen;
147− applicationSwitchingAnimation.start();
85+ spreadView.focusChanging = true;
86+ ApplicationManager.focusApplication(appId);
14887 } else {
14988 ApplicationManager.focusApplication(appId);
15089 }
@@ -161,158 +100,6 @@ Item {
161100
162101 }
163102
164− // FIXME: the signal connections seems to get lost.
165− Connections {
166− target: priv.focusedApplication
167− onScreenshotChanged: priv.focusedScreenshot = priv.focusedApplication.screenshot
168− }
169− Binding {
170− target: root
171− property: "fullscreen"
172− value: priv.focusedApplication ? priv.focusedApplication.fullscreen : false
173− }
174−
175− Timer {
176− id: appSplashTimer
177− // FIXME: We really need to show something meaningful in the app surface instead of guessing
178− // when it might be ready
179− interval: 500
180− repeat: false
181− onTriggered: {
182− priv.applicationStarting = false;
183− priv.secondApplicationStarting = false;
184− }
185− }
186−
187− SequentialAnimation {
188− id: applicationSwitchingAnimation
189− // setup
190− PropertyAction { target: mainScreenshotImage; property: "anchors.leftMargin"; value: 0 }
191− PropertyAction { target: mainScreenshotImage; property: "source"; value: priv.focusedScreenshot }
192− PropertyAction { targets: [mainScreenshotImage, fadeInScreenshotImage]; property: "visible"; value: true }
193− PropertyAction { target: fadeInScreenshotImage; property: "source"; value: {
194− var newFocusedApp = ApplicationManager.findApplication(priv.newFocusedAppId);
195− return newFocusedApp ? newFocusedApp.screenshot : "" }
196− }
197− PropertyAction { target: fadeInScreenshotImage; property: "opacity"; value: 0 }
198− PropertyAction { target: fadeInScreenshotImage; property: "scale"; value: .8 }
199−
200−
201− // The actual animation
202− ParallelAnimation {
203− UbuntuNumberAnimation { target: mainScreenshotImage; property: "anchors.leftMargin"; to: root.width; duration: UbuntuAnimation.SlowDuration }
204− UbuntuNumberAnimation { target: fadeInScreenshotImage; properties: "opacity,scale"; to: 1; duration: UbuntuAnimation.SlowDuration }
205− }
206−
207− // restore stuff
208− ScriptAction { script: ApplicationManager.focusApplication(priv.newFocusedAppId); }
209− PropertyAction { target: fadeInScreenshotImage; property: "visible"; value: false }
210− PropertyAction { target: mainScreenshotImage; property: "visible"; value: false }
211− }
212−
213− // FIXME: Drop this and make the imageprovider show a splashscreen instead
214− Rectangle {
215− id: appSplash2
216− anchors.fill: parent
217− color: "black"
218− visible: priv.secondApplicationStarting
219− }
220− Image {
221− id: fadeInScreenshotImage
222− anchors { left: parent.left; bottom: parent.bottom }
223− width: parent.width
224− scale: .7
225− visible: false
226− }
227−
228− Rectangle {
229− id: appSplash
230− anchors.fill: parent
231− color: "black"
232− visible: priv.applicationStarting
233−
234− WaitingDots {
235− }
236− }
237− Image {
238− id: mainScreenshotImage
239− anchors { left: parent.left; bottom: parent.bottom }
240− width: parent.width
241− visible: false
242− }
243−
244− EdgeDragArea {
245− id: spreadDragArea
246− direction: Direction.Leftwards
247− enabled: ApplicationManager.count > 1 && spreadView.phase != 2
248−
249− anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
250− width: root.dragAreaWidth
251−
252− // Sitting at the right edge of the screen, this EdgeDragArea directly controls the spreadView when
253− // attachedToView is true. When the finger movement passes positionMarker3 we detach it from the
254− // spreadView and make the spreadView snap to positionMarker4.
255− property bool attachedToView: true
256−
257− property var gesturePoints: new Array()
258−
259− onTouchXChanged: {
260− if (!dragging && !priv.waitingForScreenshot) {
261− // Initial touch. Let's update the screenshot and reset the spreadView to the starting position.
262− priv.requestNewScreenshot();
263− spreadView.phase = 0;
264− spreadView.contentX = -spreadView.shift;
265− }
266− if (dragging && attachedToView) {
267− // Gesture recognized. Let's move the spreadView with the finger
268− spreadView.contentX = -touchX - spreadView.shift;
269− }
270− if (attachedToView && spreadView.shiftedContentX >= spreadView.width * spreadView.positionMarker3) {
271− // We passed positionMarker3. Detach from spreadView and snap it.
272− attachedToView = false;
273− spreadView.snap();
274− }
275− gesturePoints.push(touchX);
276− }
277−
278− onStatusChanged: {
279− if (status == DirectionalDragArea.Recognized) {
280− attachedToView = true;
281− }
282− }
283−
284− onDraggingChanged: {
285− if (dragging) {
286− // Gesture recognized. Start recording this gesture
287− gesturePoints = [];
288− return;
289− }
290−
291− // Ok. The user released. Find out if it was a one-way movement.
292− var oneWayFlick = true;
293− var smallestX = spreadDragArea.width;
294− for (var i = 0; i < gesturePoints.length; i++) {
295− if (gesturePoints[i] >= smallestX) {
296− oneWayFlick = false;
297− break;
298− }
299− smallestX = gesturePoints[i];
300− }
301− gesturePoints = [];
302−
303− if (oneWayFlick && spreadView.shiftedContentX > units.gu(2) &&
304− spreadView.shiftedContentX < spreadView.positionMarker1 * spreadView.width) {
305− // If it was a short one-way movement, do the Alt+Tab switch
306− // no matter if we didn't cross positionMarker1 yet.
307− spreadView.snapTo(1);
308− } else if (!dragging && attachedToView) {
309− // otherwise snap to the closest snap position we can find
310− // (might be back to start, to app 1 or to spread)
311− spreadView.snap();
312− }
313− }
314− }
315−
316103 Rectangle {
317104 id: coverFlipBackground
318105 anchors.fill: parent
@@ -320,16 +107,12 @@ Item {
320107 visible: spreadView.visible
321108 }
322109
323− InputFilterArea {
324− anchors.fill: root
325− blockInput: spreadView.visible
326− }
327110
328111 Flickable {
329112 id: spreadView
330113 objectName: "spreadView"
331114 anchors.fill: parent
332− visible: spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1 || snapAnimation.running
115+ interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1) && draggedIndex == -1
333116 contentWidth: spreadRow.width - shift
334117 contentX: -shift
335118
@@ -338,8 +121,8 @@ Item {
338121 // that, the beginning of the gesture starts with a negative value for contentX
339122 // so the flickable wants to pull it into the view already. "shift" tunes the
340123 // distance where to "lock" the content.
341− property real shift: width / 2
342− property real shiftedContentX: contentX + shift
124+ readonly property real shift: width / 2
125+ readonly property real shiftedContentX: contentX + shift
343126
344127 property int tileDistance: width / 4
345128
@@ -363,6 +146,10 @@ Item {
363146 property int phase: 0
364147
365148 property int selectedIndex: -1
149+ property int draggedIndex: -1
150+ property int closingIndex: -1
151+
152+ property bool focusChanging: false
366153
367154 onShiftedContentXChanged: {
368155 switch (phase) {
@@ -386,9 +173,9 @@ Item {
386173 snapAnimation.targetContentX = -shift;
387174 snapAnimation.start();
388175 } else if (shiftedContentX < positionMarker2 * width) {
389− snapTo(1)
176+ snapTo(1);
390177 } else if (shiftedContentX < positionMarker3 * width) {
391− snapTo(1)
178+ snapTo(1);
392179 } else if (phase < 2){
393180 // Add 1 pixel to make sure we definitely hit positionMarker4 even with rounding errors of the animation.
394181 snapAnimation.targetContentX = width * positionMarker4 + 1 - shift;
@@ -396,9 +183,18 @@ Item {
396183 }
397184 }
398185 function snapTo(index) {
186+ if (ApplicationManager.count <= index) {
187+ // In case we're trying to snap to some non existing app, lets snap back to the first one
188+ index = 0;
189+ }
399190 spreadView.selectedIndex = index;
400− root.fullscreen = ApplicationManager.get(index).fullscreen;
401− snapAnimation.targetContentX = -shift;
191+ // If we're not in full spread mode yet, always unwind to start pos
192+ // otherwise unwind up to progress 0 of the selected index
193+ if (spreadView.phase < 2) {
194+ snapAnimation.targetContentX = -shift;
195+ } else {
196+ snapAnimation.targetContentX = -shift + index * spreadView.tileDistance;
197+ }
402198 snapAnimation.start();
403199 }
404200
@@ -417,7 +213,8 @@ Item {
417213 script: {
418214 if (spreadView.selectedIndex >= 0) {
419215 ApplicationManager.focusApplication(ApplicationManager.get(spreadView.selectedIndex).appId);
420− spreadView.selectedIndex = -1
216+
217+ spreadView.selectedIndex = -1;
421218 spreadView.phase = 0;
422219 spreadView.contentX = -spreadView.shift;
423220 }
@@ -431,6 +228,15 @@ Item {
431228 // tileDistance * app count (with a minimum of 3 apps, in order to also allow moving 1 and 2 apps a bit)
432229 // + some constant value (still scales with the screen width) which looks good and somewhat fills the screen
433230 width: Math.max(3, ApplicationManager.count) * spreadView.tileDistance + (spreadView.width - spreadView.tileDistance) * 1.5
231+ Behavior on width {
232+ enabled: spreadView.closingIndex >= 0
233+ UbuntuNumberAnimation {}
234+ }
235+ onWidthChanged: {
236+ if (spreadView.closingIndex >= 0) {
237+ spreadView.contentX = Math.min(spreadView.contentX, width - spreadView.width - spreadView.shift);
238+ }
239+ }
434240
435241 x: spreadView.contentX
436242
@@ -450,18 +256,55 @@ Item {
450256 height: spreadView.height
451257 selected: spreadView.selectedIndex == index
452258 otherSelected: spreadView.selectedIndex >= 0 && !selected
259+ interactive: !spreadView.interactive && spreadView.phase === 0
260+ && spreadView.shiftedContentX === 0 && root.interactive && index === 0
261+ swipeToCloseEnabled: spreadView.interactive
262+ maximizedAppTopMargin: root.maximizedAppTopMargin
263+ dropShadow: spreadView.shiftedContentX > 0 || spreadDragArea.status == DirectionalDragArea.Undecided
453264
454− z: index
265+ z: behavioredIndex
455266 x: index == 0 ? 0 : spreadView.width + (index - 1) * spreadView.tileDistance
267+ property real behavioredIndex: index
268+ Behavior on behavioredIndex {
269+ enabled: spreadView.closingIndex >= 0
270+ UbuntuNumberAnimation {
271+ onRunningChanged: {
272+ if (!running) {
273+ spreadView.closingIndex = -1;
274+ }
275+ }
276+ }
277+ }
278+
279+ Behavior on x {
280+ enabled: spreadView.focusChanging && index == 0 && root.spreadEnabled
281+ UbuntuNumberAnimation {
282+ duration: UbuntuAnimation.FastDuration
283+ onRunningChanged: {
284+ if (!running) {
285+ spreadView.focusChanging = false;
286+ }
287+ }
288+ }
289+ }
456290
457291 // Each tile has a different progress value running from 0 to 1.
458− // A progress value of 0 means the tile is at the right edge. 1 means the tile has reched the left edge.
292+ // 0: means the tile is at the right edge.
293+ // 1: means the tile has finished the main animation towards the left edge.
294+ // >1: after the main animation has finished, tiles will continue to move very slowly to the left
459295 progress: {
460− var tileProgress = (spreadView.shiftedContentX - index * spreadView.tileDistance) / spreadView.width;
296+ var tileProgress = (spreadView.shiftedContentX - behavioredIndex * spreadView.tileDistance) / spreadView.width;
461297 // Tile 1 needs to move directly from the beginning...
462− if (index == 1 && spreadView.phase < 2) {
298+ if (behavioredIndex == 1 && spreadView.phase < 2) {
463299 tileProgress += spreadView.tileDistance / spreadView.width;
464300 }
301+ // Limiting progress to ~0 and 1.7 to avoid binding calculations when tiles are not
302+ // visible.
303+ // < 0 : The tile is outside the screen on the right
304+ // > 1.7: The tile is *very* close to the left edge and covered by other tiles now.
305+ // Using 0.0001 to differentiate when a tile should still be visible (==0)
306+ // or we can hide it (< 0)
307+ tileProgress = Math.max(-0.0001, Math.min(1.7, tileProgress));
465308 return tileProgress;
466309 }
467310
@@ -481,7 +324,7 @@ Item {
481324
482325 EasingCurve {
483326 id: snappingCurve
484− type: EasingCurve.OutQuad
327+ type: EasingCurve.Linear
485328 period: 0.05
486329 progress: appDelegate.progress - spreadView.positionMarker1
487330 }
@@ -495,8 +338,85 @@ Item {
495338 }
496339 }
497340 }
341+
342+ onClosed: {
343+ spreadView.draggedIndex = -1;
344+ spreadView.closingIndex = index;
345+ ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
346+ }
498347 }
499348 }
500349 }
501350 }
351+
352+ EdgeDragArea {
353+ id: spreadDragArea
354+ direction: Direction.Leftwards
355+ enabled: spreadView.phase != 2 && root.spreadEnabled
356+
357+ anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
358+ width: root.dragAreaWidth
359+
360+ // Sitting at the right edge of the screen, this EdgeDragArea directly controls the spreadView when
361+ // attachedToView is true. When the finger movement passes positionMarker3 we detach it from the
362+ // spreadView and make the spreadView snap to positionMarker4.
363+ property bool attachedToView: true
364+
365+ property var gesturePoints: new Array()
366+
367+ onTouchXChanged: {
368+ if (!dragging) {
369+ // Initial touch. Let's reset the spreadView to the starting position.
370+ spreadView.phase = 0;
371+ spreadView.contentX = -spreadView.shift;
372+ }
373+ if (dragging && attachedToView) {
374+ // Gesture recognized. Let's move the spreadView with the finger
375+ spreadView.contentX = -touchX + spreadDragArea.width - spreadView.shift;
376+ }
377+ if (attachedToView && spreadView.shiftedContentX >= spreadView.width * spreadView.positionMarker3) {
378+ // We passed positionMarker3. Detach from spreadView and snap it.
379+ attachedToView = false;
380+ spreadView.snap();
381+ }
382+ gesturePoints.push(touchX);
383+ }
384+
385+ onStatusChanged: {
386+ if (status == DirectionalDragArea.Recognized) {
387+ attachedToView = true;
388+ }
389+ }
390+
391+ onDraggingChanged: {
392+ if (dragging) {
393+ // Gesture recognized. Start recording this gesture
394+ gesturePoints = [];
395+ return;
396+ }
397+
398+ // Ok. The user released. Find out if it was a one-way movement.
399+ var oneWayFlick = true;
400+ var smallestX = spreadDragArea.width;
401+ for (var i = 0; i < gesturePoints.length; i++) {
402+ if (gesturePoints[i] >= smallestX) {
403+ oneWayFlick = false;
404+ break;
405+ }
406+ smallestX = gesturePoints[i];
407+ }
408+ gesturePoints = [];
409+
410+ if (oneWayFlick && spreadView.shiftedContentX > units.gu(2) &&
411+ spreadView.shiftedContentX < spreadView.positionMarker1 * spreadView.width) {
412+ // If it was a short one-way movement, do the Alt+Tab switch
413+ // no matter if we didn't cross positionMarker1 yet.
414+ spreadView.snapTo(1);
415+ } else if (!dragging && attachedToView) {
416+ // otherwise snap to the closest snap position we can find
417+ // (might be back to start, to app 1 or to spread)
418+ spreadView.snap();
419+ }
420+ }
421+ }
502422}
qml/Stages/Splash.qmlnew file+68
@@ -0,0 +1,68 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+import "../Components"
20+
21+Rectangle {
22+ id: root
23+ color: "black"
24+
25+ property string name: ""
26+ property url image: ""
27+
28+ UbuntuShape {
29+ id: iconShape
30+ anchors.horizontalCenter: parent.horizontalCenter
31+ anchors.verticalCenter: parent.verticalCenter
32+ anchors.verticalCenterOffset: -units.gu(4)
33+ width: units.gu(8)
34+ height: units.gu(7.5)
35+
36+ radius: "medium"
37+ borderSource: "none"
38+
39+ image: Image {
40+ id: iconImage
41+ sourceSize.width: iconShape.width
42+ sourceSize.height: iconShape.height
43+ source: root.image
44+ fillMode: Image.PreserveAspectCrop
45+ }
46+ }
47+
48+ Label {
49+ text: root.name
50+ anchors.horizontalCenter: parent.horizontalCenter
51+ anchors.top: iconShape.bottom
52+ anchors.topMargin: units.gu(2)
53+ fontSize: "large"
54+ }
55+
56+ WaitingDots {
57+ visible: parent.visible
58+ anchors.horizontalCenter: parent.horizontalCenter
59+ anchors.bottom: parent.bottom
60+ anchors.bottomMargin: units.gu(12)
61+ }
62+
63+ MouseArea {
64+ anchors.fill: parent
65+ enabled: parent.visible
66+ // absorb all mouse events
67+ }
68+}
qml/Stages/SpreadDelegate.qml+187−23
@@ -17,39 +17,203 @@
1717*/
1818
1919import QtQuick 2.0
20+import Unity.Application 0.1
21+import Ubuntu.Components 1.1
22+import "../Components"
2023
2124Item {
2225 id: root
2326
27+ // to be set from outside
28+ property bool interactive: true
29+ property bool dropShadow: true
30+ property real maximizedAppTopMargin
31+ property alias swipeToCloseEnabled: dragArea.enabled
32+
33+ readonly property bool isFullscreen: surface !== null && surfaceContainer.surface.anchors.topMargin == 0
34+
2435 signal clicked()
36+ signal closed()
37+
38+ SurfaceContainer {
39+ id: surfaceContainer
40+ anchors.fill: parent
41+ surface: model.surface
42+ property bool appHasCreatedASurface: false
43+
44+ onSurfaceChanged: {
45+ if (surface) {
46+ if (!appHasCreatedASurface) {
47+ surface.visible = false; // hide until splash screen removed
48+ appHasCreatedASurface = true;
49+ }
50+ }
51+ }
52+
53+ function revealSurface() {
54+ surface.visible = true;
55+ splashLoader.source = "";
56+ }
57+
58+ Binding {
59+ target: surfaceContainer.surface
60+ property: "anchors.topMargin"
61+ value: {
62+ return surfaceContainer.surface.state === MirSurfaceItem.Fullscreen ? 0 : maximizedAppTopMargin;
63+ }
64+ }
2565
26− property real topMarginProgress
66+ Binding {
67+ target: surface
68+ property: "enabled"
69+ value: root.interactive
70+ }
71+ Binding {
72+ target: surface
73+ property: "focus"
74+ value: root.interactive
75+ }
76+
77+ Timer { //FIXME - need to delay removing splash screen to allow surface resize to complete
78+ id: surfaceRevealDelay
79+ interval: 100
80+ onTriggered: surfaceContainer.revealSurface()
81+ }
82+
83+ Connections {
84+ target: surface
85+ // FIXME: I would rather not need to do this, but currently it doesn't get
86+ // active focus without it and I don't know why.
87+ onFocusChanged: forceSurfaceActiveFocusIfReady();
88+ onParentChanged: forceSurfaceActiveFocusIfReady();
89+ onEnabledChanged: forceSurfaceActiveFocusIfReady();
90+ function forceSurfaceActiveFocusIfReady() {
91+ if (surface.focus && surface.parent === surfaceContainer && surface.enabled) {
92+ surface.forceActiveFocus();
93+ }
94+ }
95+ }
96+
97+ BorderImage {
98+ id: dropShadowImage
99+ anchors {
100+ fill: parent
101+ leftMargin: -units.gu(2)
102+ rightMargin: -units.gu(2)
103+ bottomMargin: -units.gu(2)
104+ topMargin: -units.gu(2) + (root.isFullscreen ? 0 : maximizedAppTopMargin)
105+ }
106+ source: "graphics/dropshadow.png"
107+ border { left: 50; right: 50; top: 50; bottom: 50 }
108+ opacity: root.dropShadow ? .4 : 0
109+ Behavior on opacity { UbuntuNumberAnimation {} }
110+ }
27111
28− QtObject {
29− id: priv
30− property real heightDifference: root.height - appImage.implicitHeight
112+ transform: Translate {
113+ y: dragArea.distance
114+ }
31115 }
32116
33− Image {
34− id: dropShadow
35− anchors.fill: appImage
36− anchors.margins: -units.gu(2)
37− source: "graphics/dropshadow.png"
38− opacity: .4
117+
118+ StateGroup {
119+ id: appSurfaceState
120+ states: [
121+ State {
122+ name: "noSurfaceYet"
123+ when: !surfaceContainer.appHasCreatedASurface
124+ StateChangeScript {
125+ script: { splashLoader.setSource("Splash.qml", { "name": model.name, "image": model.icon }); }
126+ }
127+ },
128+ State {
129+ name: "hasSurface"
130+ when: surfaceContainer.appHasCreatedASurface && (surfaceContainer.surface !== null)
131+ StateChangeScript { script: { surfaceRevealDelay.start(); } }
132+ },
133+ State {
134+ name: "surfaceLostButAppStillAlive"
135+ when: surfaceContainer.appHasCreatedASurface && (surfaceContainer.surface === null)
136+ // TODO - use app snapshot
137+ }
138+ ]
139+ state: "noSurfaceYet"
39140 }
40− Image {
41− id: appImage
42− anchors {
43− left: parent.left;
44− bottom: parent.bottom;
45− top: parent.top;
46− topMargin: priv.heightDifference * Math.max(0, 1 - root.topMarginProgress)
47− }
48− source: model.screenshot
49− antialiasing: true
141+
142+ Loader {
143+ id: splashLoader
144+ anchors.fill: surfaceContainer
50145 }
51− MouseArea {
52− anchors.fill: appImage
53− onClicked: root.clicked()
146+
147+ DraggingArea {
148+ id: dragArea
149+ anchors.fill: parent
150+
151+ property bool moving: false
152+ property real distance: 0
153+
154+ onMovingChanged: {
155+ spreadView.draggedIndex = moving ? index : -1
156+ }
157+
158+ onDragValueChanged: {
159+ if (!dragging) {
160+ return;
161+ }
162+ moving = moving || Math.abs(dragValue) > units.gu(1)
163+ if (moving) {
164+ distance = dragValue;
165+ }
166+ }
167+
168+ onClicked: {
169+ if (!moving) {
170+ root.clicked();
171+ }
172+ }
173+
174+ onDragEnd: {
175+ // velocity and distance values specified by design prototype
176+ if ((dragVelocity < -units.gu(40) && distance < -units.gu(8)) || distance < -root.height / 2) {
177+ animation.animate("up")
178+ } else if ((dragVelocity > units.gu(40) && distance > units.gu(8)) || distance > root.height / 2) {
179+ animation.animate("down")
180+ } else {
181+ animation.animate("center")
182+ }
183+ }
184+
185+ UbuntuNumberAnimation {
186+ id: animation
187+ target: dragArea
188+ property: "distance"
189+ property bool requestClose: false
190+
191+ function animate(direction) {
192+ animation.from = dragArea.distance;
193+ switch (direction) {
194+ case "up":
195+ animation.to = -root.height * 1.5;
196+ requestClose = true;
197+ break;
198+ case "down":
199+ animation.to = root.height * 1.5;
200+ requestClose = true;
201+ break;
202+ default:
203+ animation.to = 0
204+ }
205+ animation.start();
206+ }
207+
208+ onRunningChanged: {
209+ if (!running) {
210+ dragArea.moving = false;
211+ dragArea.distance = 0;
212+ if (requestClose) {
213+ root.closed();
214+ }
215+ }
216+ }
217+ }
54218 }
55219}
qml/Stages/StageWithSideStage.qmldeleted−413

This diff is too big to show here.

qml/Stages/SurfaceContainer.qmlnew file+123

This diff is too big to show here.

qml/Stages/SwitchingApplicationImage.qmldeleted−81

This diff is too big to show here.

qml/Stages/TabletStage.qmlnew file+568

This diff is too big to show here.

qml/Stages/TransformedSpreadDelegate.qml+36−30

This diff is too big to show here.

qml/Stages/TransformedTabletSpreadDelegate.qmlnew file+369

This diff is too big to show here.

qml/graphics/applicationIcons/phone-app@18.png → qml/graphics/applicationIcons/dialer-app@18.pngrenamed

Binary file not shown.

run.sh−6

This diff is too big to show here.

src/CMakeLists.txt+1−3

This diff is too big to show here.

src/CachingNetworkManagerFactory.cppnew file+62

This diff is too big to show here.

src/CachingNetworkManagerFactory.hnew file+50

This diff is too big to show here.

src/Panel/Indicators/client/indicatorsclient.cpp−1

This diff is too big to show here.

src/main.cpp+19−93

This diff is too big to show here.

tests/autopilot/unity8/process_helpers.py+4−3

This diff is too big to show here.

tests/autopilot/unity8/shell/emulators/dash.py+39−30

This diff is too big to show here.

tests/autopilot/unity8/shell/emulators/main_window.py−5

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/__init__.py+1−2

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/disabled_test_hud.py+44−13

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_emulators.py+15−8

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_lock_screen.py+4−5

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_notifications.py+29−27

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_system_integration.py+10−5

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_upstart.py+33−11

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypesnew file+22

This diff is too big to show here.

tests/mocks/GSettings.1.0/GSettings.qmltypesnew file+42

This diff is too big to show here.

tests/mocks/HudClient/HudClient.qmltypesnew file+113

This diff is too big to show here.

tests/mocks/LightDM/CMakeLists.txt+1

This diff is too big to show here.

tests/mocks/LightDM/LightDM.qmltypesnew file+241

This diff is too big to show here.

tests/mocks/LightDM/single-pin/GreeterPrivate.cpp+1−9

This diff is too big to show here.

tests/mocks/Powerd/Powerd.qmltypesnew file+39

This diff is too big to show here.

tests/mocks/QMenuModel/QDBusActionGroup.qml+60

This diff is too big to show here.

tests/mocks/QMenuModel/QMenuModel.qmltypesnew file+77

This diff is too big to show here.

tests/mocks/QMenuModel/unitymenumodel.cpp+5

This diff is too big to show here.

tests/mocks/QMenuModel/unitymenumodel.h+4

This diff is too big to show here.

tests/mocks/QtMultimedia/QtMultimedia.qmltypesnew file+52

This diff is too big to show here.

tests/mocks/Ubuntu/CMakeLists.txt+2

This diff is too big to show here.

tests/mocks/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypesnew file+60

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/CMakeLists.txtnew file+10

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/MockPayments.cppnew file+89

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/MockPayments.hnew file+60

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/Payments.qmltypesnew file+42

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/plugin.cppnew file+28

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/plugin.hnew file+31

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/qmldirnew file+3

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/CMakeLists.txtnew file+14

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/ContactWatcherData.cppnew file+43

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/ContactWatcherData.hnew file+46

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockCallEntry.cppnew file+66

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockCallEntry.hnew file+57

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockCallManager.cppnew file+80

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockCallManager.hnew file+60

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockContactWatcher.cppnew file+50

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockContactWatcher.hnew file+49

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cppnew file+35

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.hnew file+36

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/plugin.cppnew file+52

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/plugin.hnew file+37

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Ubuntu/Thumbnailer/Thumbnailer.qmltypesnew file+17

This diff is too big to show here.

tests/mocks/Unity/Application/Application.qmltypesnew file+311

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationDBusAdaptor.cppnew file+75

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationDBusAdaptor.hnew file+43

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.cpp+69−21

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.h+21−8

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+63−34

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.h+15−9

This diff is too big to show here.

tests/mocks/Unity/Application/CMakeLists.txt+8−3

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cppnew file+172

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.hnew file+121

This diff is too big to show here.

tests/mocks/Unity/Application/SurfaceManager.cppnew file+73

This diff is too big to show here.

tests/mocks/Unity/Application/SurfaceManager.hnew file+54

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.cppnew file+55

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.hnew file+35

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp+16−9

This diff is too big to show here.

tests/mocks/Unity/CMakeLists.txt+1−1

This diff is too big to show here.

tests/mocks/Unity/Indicators/IndicatorBase.qmldeleted−38

This diff is too big to show here.

tests/mocks/Unity/Indicators/Indicators.qmltypesnew file+210

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeindicatorsmodel.cpp+1−1

This diff is too big to show here.

tests/mocks/Unity/Indicators/qmldir−2

This diff is too big to show here.

tests/mocks/Unity/Launcher/Launcher.qmltypesnew file+171

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherModel.cpp+7−2

This diff is too big to show here.

tests/mocks/Unity/Notifications/Notifications.qmltypesnew file+10

This diff is too big to show here.

tests/mocks/Unity/Unity.qmltypesnew file+353

This diff is too big to show here.

tests/mocks/Unity/fake_categories.cpp+17−1

This diff is too big to show here.

tests/mocks/Unity/fake_categories.h+2

This diff is too big to show here.

tests/mocks/Unity/fake_scope.cpp+57−21

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+3−1

This diff is too big to show here.

tests/mocks/Unity/fake_scopes.cpp+1

This diff is too big to show here.

tests/mocks/Unity/fake_unity_plugin.cpp+1

This diff is too big to show here.

tests/mocks/libusermetrics/UserMetrics.cpp+3

This diff is too big to show here.

tests/plugins/Dash/CMakeLists.txt+2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res+3−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/2.res+5−5

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res+6−4

This diff is too big to show here.

tests/plugins/Dash/cardcreator/4.res+4−3

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res+3−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.resnew file+67

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.tstnew file+3

This diff is too big to show here.

tests/plugins/Dash/tst_ScopeStyle.qmlnew file+176

This diff is too big to show here.

tests/plugins/LightDM/CMakeLists.txt+1−1

This diff is too big to show here.

tests/plugins/LightDM/dbus.cpp+40

This diff is too big to show here.

tests/plugins/Unity/Indicators/unitymenumodelstacktest.cpp+3

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+9

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+7−5

This diff is too big to show here.

tests/qmltests/Components/tst_Background.qmlnew file+90

This diff is too big to show here.

tests/qmltests/Components/tst_Carousel.qml+48−2

This diff is too big to show here.

tests/qmltests/Components/tst_FilterGrid.qmldeleted−190

This diff is too big to show here.

tests/qmltests/Components/tst_PageHeaderLabel.qml → tests/qmltests/Components/tst_PageHeader.qmlrenamed+90−54

This diff is too big to show here.

tests/qmltests/Components/tst_PageHeader/logo-ubuntu-orange.svgnew file+60

This diff is too big to show here.

tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml+25−4

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_Preview.qml+2−2

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewPayments.qmlnew file+100

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingDisplay.qml+13

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+1−40

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+20−158

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+226−85

This diff is too big to show here.

tests/qmltests/Greeter/tst_Lockscreen.qml+1−1

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+13−4

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+18−23

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+1−1

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_DefaultIndicatorPage.qml+1

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_DefaultIndicatorWidget.qml+3−40

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+65−2

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_MessageMenuItemFactory.qml+2−2

This diff is too big to show here.

tests/qmltests/Panel/tst_ActiveCallHint.qmlnew file+166

This diff is too big to show here.

tests/qmltests/Panel/tst_Indicators.qml+10−21

This diff is too big to show here.

tests/qmltests/Panel/tst_Panel.qml+147−96

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+9−56

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+122−30

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qmlnew file+203

This diff is too big to show here.

tests/utils/modules/Unity/Test/Test.qmltypesnew file+59

This diff is too big to show here.

tests/whitespace/check_whitespace.py+22−12

This diff is too big to show here.

tools/scopetool.cpp−2

This diff is too big to show here.