on xenial help sign in
merge trunk.
1ddcc7dAntti Kaijanmäki
.bazaar/plugins/makecheck_unity_phablet.py+16−8
@@ -1,5 +1,5 @@
1#!/usr/bin/python
1#!/usr/bin/python
2−# Copyright 2013 Canonical Ltd.
2+# Copyright 2013, 2014 Canonical Ltd.
3#
3#
4# This program is free software; you can redistribute it and/or modify
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
5# it under the terms of the GNU Lesser General Public License as published by
@@ -13,11 +13,15 @@
13# You should have received a copy of the GNU Lesser General Public License
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/>.
14# along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
16−import os, subprocess
16+import os
17+import subprocess
17−from bzrlib import branch, errors
18+from bzrlib import branch
18−from bzrlib.urlutils import dirname, local_path_from_url
19+from bzrlib.urlutils import local_path_from_url
19
20
21+
22+def execute_makecheck(
23+ local_branch, master_branch, old_revision_number, old_revision_id,
20−def execute_makecheck(local_branch, master_branch, old_revision_number, old_revision_id, future_revision_number, future_revision_id, tree_delta, future_tree):
24+ future_revision_number, future_revision_id, tree_delta, future_tree):
21 if not master_branch.basis_tree().has_filename("qml/Shell.qml"):
25 if not master_branch.basis_tree().has_filename("qml/Shell.qml"):
22 return
26 return
23
27
@@ -27,7 +31,9 @@ def execute_makecheck(local_branch, master_branch, old_revision_number, old_revi
27 os.environ['CTEST_OUTPUT_ON_FAILURE'] = "1"
31 os.environ['CTEST_OUTPUT_ON_FAILURE'] = "1"
28 if (subprocess.call("make -C builddir test", shell=True) != 0):
32 if (subprocess.call("make -C builddir test", shell=True) != 0):
29
33
34+ print("\n\n*** Warning ***\n\n"
30− print("\n\n*** Warning ***\n\nBasic tests failed. This commit will not pass continuous integration.")
35+ "Basic tests failed. This commit will not pass continuous "
36+ "integration.")
31
37
32 branch = local_branch or master_branch
38 branch = local_branch or master_branch
33 revision = branch.repository.get_revision(future_revision_id)
39 revision = branch.repository.get_revision(future_revision_id)
@@ -36,8 +42,10 @@ def execute_makecheck(local_branch, master_branch, old_revision_number, old_revi
36 msg_file.close()
42 msg_file.close()
37
43
38 print("\n\nSaved commit message to $SRC_DIR/message.txt.")
44 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")
40 elif os.path.isfile("message.txt"):
47 elif os.path.isfile("message.txt"):
41 os.remove("message.txt")
48 os.remove("message.txt")
42
49
50+branch.Branch.hooks.install_named_hook(
43−branch.Branch.hooks.install_named_hook('pre_commit', execute_makecheck, 'make check pre-commit')
51+ 'pre_commit', execute_makecheck, 'make check pre-commit')
tests/autopilot/.project → .projectrenamed+1−1
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?>
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
2<projectDescription>
3− <name>Unity8 Autopilot</name>
3+ <name>Unity8</name>
4 <comment></comment>
4 <comment></comment>
5 <projects>
5 <projects>
6 </projects>
6 </projects>
tests/autopilot/.pydevproject → .pydevprojectrenamed+3−1
@@ -1,7 +1,9 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<?eclipse-pydev version="1.0"?><pydev_project>
2<?eclipse-pydev version="1.0"?><pydev_project>
3<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
3<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>
5</pydev_pathproperty>
7</pydev_pathproperty>
6<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
8<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
7<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
9<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() {
42 equivs \
42 equivs \
43 gsettings-desktop-schemas \
43 gsettings-desktop-schemas \
44 gsettings-ubuntu-schemas \
44 gsettings-ubuntu-schemas \
45+ pay-service \
45 qmenumodel-qml \
46 qmenumodel-qml \
46 qml-module-qtquick-xmllistmodel \
47 qml-module-qtquick-xmllistmodel \
47 qtdeclarative5-gsettings1.0 \
48 qtdeclarative5-gsettings1.0 \
48 qtdeclarative5-ubuntu-ui-toolkit-plugin \
49 qtdeclarative5-ubuntu-ui-toolkit-plugin \
49 qtdeclarative5-ubuntu-settings-components \
50 qtdeclarative5-ubuntu-settings-components \
51+ qtdeclarative5-ubuntu-telephony0.1 \
50 qtdeclarative5-ubuntu-thumbnailer0.1 \
52 qtdeclarative5-ubuntu-thumbnailer0.1 \
51 unity-notifications-impl \
53 unity-notifications-impl \
52 ubuntu-mobile-icons \
54 ubuntu-mobile-icons \
cmake/modules/QmlPlugins.cmake+29−22
@@ -12,6 +12,12 @@ if(NOT TARGET qmlplugindump)
12 set_target_properties(qmlplugindump PROPERTIES IMPORTED_LOCATION ${qmlplugindump_exe})
12 set_target_properties(qmlplugindump PROPERTIES IMPORTED_LOCATION ${qmlplugindump_exe})
13endif()
13endif()
14
14
15+#
16+# A custom target for building the qmltypes files manually.
17+#
18+if (NOT TARGET qmltypes)
19+ add_custom_target(qmltypes)
20+endif()
15
21
16# Creates a target for copying resource files into build dir and optionally installing them.
22# Creates a target for copying resource files into build dir and optionally installing them.
17#
23#
@@ -51,6 +57,7 @@ macro(export_qmlfiles PLUGIN PATH)
51 ${QMLFILES_SEARCH_PATH}/*.png
57 ${QMLFILES_SEARCH_PATH}/*.png
52 ${QMLFILES_SEARCH_PATH}/*.sci
58 ${QMLFILES_SEARCH_PATH}/*.sci
53 ${QMLFILES_SEARCH_PATH}/*.svg
59 ${QMLFILES_SEARCH_PATH}/*.svg
60+ ${QMLFILES_SEARCH_PATH}/*.qmltypes
54 ${QMLFILES_SEARCH_PATH}/qmldir
61 ${QMLFILES_SEARCH_PATH}/qmldir
55 )
62 )
56
63
@@ -69,14 +76,14 @@ macro(export_qmlfiles PLUGIN PATH)
69 DESTINATION ${QMLFILES_DESTINATION}/${PATH}
76 DESTINATION ${QMLFILES_DESTINATION}/${PATH}
70 )
77 )
71 endif()
78 endif()
72−endmacro(export_qmlfiles)
79+endmacro()
73
80
74
81
75−# Creates a target for generating the typeinfo file for a QML plugin and optionally installs it
82+# Creates a target for generating the typeinfo file for a QML plugin and/or installs the plugin
76−# and additional targets.
83+# targets.
77#
84#
78# Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed
85# 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
80# path ends with ${path}.
87# path ends with ${path}.
81#
88#
82# The generated file will be named after the last segment of the plugin name, e.g. Foo.qmltypes.
89# 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)
87# [TARGET_PREFIX string] # Will be prefixed to the target name
94# [TARGET_PREFIX string] # Will be prefixed to the target name
88# [ENVIRONMENT string] # Will be added to qmlplugindump's env
95# [ENVIRONMENT string] # Will be added to qmlplugindump's env
89# [TARGETS target1 [target2 ...]] # Targets to depend on and install (e.g. the plugin shared object)
96# [TARGETS target1 [target2 ...]] # Targets to depend on and install (e.g. the plugin shared object)
97+# [NO_TYPES] # Do not create the qmltypes target
90# )
98# )
91#
99#
92# Created target:
100# 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.
94
103
95macro(export_qmlplugin PLUGIN VERSION PATH)
104macro(export_qmlplugin PLUGIN VERSION PATH)
105+ set(options NO_TYPES)
96 set(single BINARY_DIR DESTINATION TARGET_PREFIX ENVIRONMENT)
106 set(single BINARY_DIR DESTINATION TARGET_PREFIX ENVIRONMENT)
97 set(multi TARGETS)
107 set(multi TARGETS)
98− cmake_parse_arguments(QMLPLUGIN "" "${single}" "${multi}" ${ARGN})
108+ cmake_parse_arguments(QMLPLUGIN "${options}" "${single}" "${multi}" ${ARGN})
99
109
100 get_target_property(qmlplugindump_executable qmlplugindump LOCATION)
110 get_target_property(qmlplugindump_executable qmlplugindump LOCATION)
101
111
@@ -103,29 +113,26 @@ macro(export_qmlplugin PLUGIN VERSION PATH)
103 set(qmlplugin_dir ${QMLPLUGIN_BINARY_DIR}/${PATH})
113 set(qmlplugin_dir ${QMLPLUGIN_BINARY_DIR}/${PATH})
104 else()
114 else()
105 # Find import path to point qmlplugindump at
115 # 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}")
107 set(qmlplugin_dir ${CMAKE_CURRENT_BINARY_DIR})
117 set(qmlplugin_dir ${CMAKE_CURRENT_BINARY_DIR})
108 endif()
118 endif()
109
119
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+
110− # Find the last segment of the plugin name to use as qmltypes basename
124+ # Find the last segment of the plugin name to use as qmltypes basename
111− string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN})
125+ string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN})
112− set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN})
126+ set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN})
113− set(qmltypes_path ${qmlplugin_dir}/${plugin_suffix}.qmltypes)
127+ set(qmltypes_path ${CMAKE_CURRENT_SOURCE_DIR}/${plugin_suffix}.qmltypes)
114
128
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
118 COMMAND env ${QMLPLUGIN_ENVIRONMENT} ${qmlplugindump_executable} -notrelocatable
130 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}
120 )
133 )
121 add_dependencies(${target_prefix}-qmltypes ${target_prefix}-qmlfiles ${QMLPLUGIN_TARGETS})
134 add_dependencies(${target_prefix}-qmltypes ${target_prefix}-qmlfiles ${QMLPLUGIN_TARGETS})
122−
135+ add_dependencies(qmltypes ${target_prefix}-qmltypes)
123− if (QMLPLUGIN_DESTINATION)
124− # Install the typeinfo file
125− install(FILES ${qmltypes_path}
126− DESTINATION ${QMLPLUGIN_DESTINATION}/${PATH}
127− )
128− endif()
129 endif()
136 endif()
130
137
131 set_target_properties(${QMLPLUGIN_TARGETS} PROPERTIES
138 set_target_properties(${QMLPLUGIN_TARGETS} PROPERTIES
cmake/modules/autopilot.cmake+2−2
@@ -2,7 +2,7 @@ add_custom_target(autopilot)
2
2
3function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
3function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
4 add_custom_target(autopilot-${TEST_NAME}
4 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}
6 WORKING_DIRECTORY ${WORKING_DIR}
6 WORKING_DIRECTORY ${WORKING_DIR}
7 DEPENDS fake_install
7 DEPENDS fake_install
8 )
8 )
@@ -14,7 +14,7 @@ function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
14 add_dependencies(autopilot autopilot-${TEST_NAME})
14 add_dependencies(autopilot autopilot-${TEST_NAME})
15
15
16 add_custom_target(autopilot2-${TEST_NAME}
16 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}
18 WORKING_DIRECTORY ${WORKING_DIR}
18 WORKING_DIRECTORY ${WORKING_DIR}
19 DEPENDS fake_install
19 DEPENDS fake_install
20 )
20 )
data/unity8.conf+3
@@ -44,6 +44,8 @@ pre-start script
44 rm "$MIR_SERVER_FILE"
44 rm "$MIR_SERVER_FILE"
45 fi
45 fi
46
46
47+ initctl set-env --global MIR_SERVER_PROMPT_FILE=1
48+
47 initctl emit scope-ui-starting
49 initctl emit scope-ui-starting
48 initctl emit --no-wait indicator-services-start
50 initctl emit --no-wait indicator-services-start
49end script
51end script
@@ -53,4 +55,5 @@ exec ${BINARY:-unity8} $ARGS
53post-stop script
55post-stop script
54 initctl set-env --global MIR_SOCKET=$UNITY_MIR_SOCKET
56 initctl set-env --global MIR_SOCKET=$UNITY_MIR_SOCKET
55 initctl unset-env --global UNITY_MIR_SOCKET
57 initctl unset-env --global UNITY_MIR_SOCKET
58+ initctl unset-env --global MIR_SERVER_PROMPT_FILE
56end script
59end 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+
1unity8 (7.89+14.10.20140627-0ubuntu1) utopic; urgency=low
296unity8 (7.89+14.10.20140627-0ubuntu1) utopic; urgency=low
2
297
3 [ Michael Terry ]
298 [ Michael Terry ]
debian/control+21−13
@@ -7,18 +7,23 @@ Build-Depends: cmake,
7 debhelper (>= 9),
7 debhelper (>= 9),
8 doxyqml,
8 doxyqml,
9 graphviz,
9 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,
10 libdee-qt5-dev (>= 3.2),
14 libdee-qt5-dev (>= 3.2),
11 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
15 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
12 libgl1-mesa-dri,
16 libgl1-mesa-dri,
13 libgles2-mesa-dev[armhf],
17 libgles2-mesa-dev[armhf],
14 libglib2.0-dev,
18 libglib2.0-dev,
15 libgsettings-qt-dev,
19 libgsettings-qt-dev,
20+ libhardware-dev,
16 libhud-client2-dev,
21 libhud-client2-dev,
22+ libpay2-dev,
17 libpulse-dev,
23 libpulse-dev,
18− libqmenumodel-dev (>= 0.2.7),
24+ libqmenumodel-dev (>= 0.2.8),
19 libqt5xmlpatterns5-dev,
25 libqt5xmlpatterns5-dev,
20− libunity-api-dev (>= 7.83),
26+ libunity-api-dev (>= 7.85),
21− libunity-mir-dev,
22 libusermetricsoutput1-dev,
27 libusermetricsoutput1-dev,
23 libxcb1-dev,
28 libxcb1-dev,
24 pkg-config,
29 pkg-config,
@@ -37,8 +42,8 @@ Build-Depends: cmake,
37 qtdeclarative5-dev-tools,
42 qtdeclarative5-dev-tools,
38 qtdeclarative5-private-dev (>= 5.2.1),
43 qtdeclarative5-private-dev (>= 5.2.1),
39 qtdeclarative5-qtmultimedia-plugin,
44 qtdeclarative5-qtmultimedia-plugin,
40− qtdeclarative5-ubuntu-settings-components,
45+ qtdeclarative5-ubuntu-settings-components (>= 0.3),
41− qtdeclarative5-ubuntu-ui-toolkit-plugin,
46+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
42 ttf-ubuntu-font-family,
47 ttf-ubuntu-font-family,
43Standards-Version: 3.9.4
48Standards-Version: 3.9.4
44Homepage: http://launchpad.net/unity
49Homepage: http://launchpad.net/unity
@@ -50,8 +55,8 @@ Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
50
55
51Package: indicators-client
56Package: indicators-client
52Architecture: amd64 armhf i386
57Architecture: amd64 armhf i386
53−Depends: qmenumodel-qml (>= 0.2.7),
58+Depends: qmenumodel-qml (>= 0.2.8),
54− qtdeclarative5-ubuntu-ui-toolkit-plugin,
59+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
55 unity8 (= ${binary:Version}),
60 unity8 (= ${binary:Version}),
56 ${misc:Depends},
61 ${misc:Depends},
57 ${shlibs:Depends},
62 ${shlibs:Depends},
@@ -74,11 +79,12 @@ Provides: indicator-renderer,
74Depends: gsettings-desktop-schemas,
79Depends: gsettings-desktop-schemas,
75 libcap2-bin,
80 libcap2-bin,
76 libglib2.0-bin,
81 libglib2.0-bin,
77− libunity-mir1 (>= 0.4),
78− qmenumodel-qml (>= 0.2.7),
82+ qmenumodel-qml (>= 0.2.8),
79 qml-module-qtquick-xmllistmodel,
83 qml-module-qtquick-xmllistmodel,
80 qtdeclarative5-gsettings1.0,
84 qtdeclarative5-gsettings1.0,
85+ qtdeclarative5-qtmir-plugin (>= 0.4),
81− qtdeclarative5-ubuntu-settings-components,
86+ qtdeclarative5-ubuntu-settings-components (>= 0.3),
87+ qtdeclarative5-ubuntu-telephony0.1,
82 unity-launcher-impl-3,
88 unity-launcher-impl-3,
83 unity8-common (= ${source:Version}),
89 unity8-common (= ${source:Version}),
84 unity8-private (= ${binary:Version}),
90 unity8-private (= ${binary:Version}),
@@ -99,13 +105,13 @@ Description: Unity 8 shell
99Package: unity8-common
105Package: unity8-common
100Architecture: all
106Architecture: all
101Depends: qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
107Depends: qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
102− qtdeclarative5-ubuntu-ui-toolkit-plugin,
108+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
103− qtdeclarative5-unity-notifications-plugin | unity-notifications-impl,
109+ qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
104 ubuntu-thumbnailer-impl-0,
110 ubuntu-thumbnailer-impl-0,
105 unity-application-impl-2,
111 unity-application-impl-2,
106 unity-notifications-impl-3,
112 unity-notifications-impl-3,
107 unity-plugin-scopes | unity-scopes-impl,
113 unity-plugin-scopes | unity-scopes-impl,
108− unity-scopes-impl-0,
114+ unity-scopes-impl-2,
109 unity8-fake-env | unity-application-impl,
115 unity8-fake-env | unity-application-impl,
110 ${misc:Depends},
116 ${misc:Depends},
111Breaks: unity8 (<< 7.86),
117Breaks: unity8 (<< 7.86),
@@ -159,7 +165,9 @@ Architecture: any
159Multi-Arch: same
165Multi-Arch: same
160Pre-Depends: ${misc:Pre-Depends},
166Pre-Depends: ${misc:Pre-Depends},
161Depends: gsettings-ubuntu-schemas,
167Depends: gsettings-ubuntu-schemas,
168+ libhardware2,
162 libunity-core-6.0-9,
169 libunity-core-6.0-9,
170+ pay-service,
163 ${misc:Depends},
171 ${misc:Depends},
164 ${shlibs:Depends},
172 ${shlibs:Depends},
165Provides: unity-launcher-impl,
173Provides: unity-launcher-impl,
debian/rules+7
@@ -1,11 +1,18 @@
1#!/usr/bin/make -f
1#!/usr/bin/make -f
2# -*- makefile -*-
2# -*- makefile -*-
3
3
4+include /usr/share/dpkg/default.mk
5+
4# Uncomment this to turn on verbose mode.
6# Uncomment this to turn on verbose mode.
5#export DH_VERBOSE=1
7#export DH_VERBOSE=1
6export DPKG_GENSYMBOLS_CHECK_LEVEL=4
8export DPKG_GENSYMBOLS_CHECK_LEVEL=4
7export NO_PNG_PKG_MANGLE=1
9export NO_PNG_PKG_MANGLE=1
8
10
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+
9%:
16%:
10 dh $@ --parallel --fail-missing --with python2,python3
17 dh $@ --parallel --fail-missing --with python2,python3
11
18
debian/unity8-private.install+1
@@ -2,6 +2,7 @@ usr/lib/*/unity8/qml/AccountsService
2usr/lib/*/unity8/qml/Dash
2usr/lib/*/unity8/qml/Dash
3usr/lib/*/unity8/qml/HudClient
3usr/lib/*/unity8/qml/HudClient
4usr/lib/*/unity8/qml/LightDM
4usr/lib/*/unity8/qml/LightDM
5+usr/lib/*/unity8/qml/Lights
5usr/lib/*/unity8/qml/Powerd
6usr/lib/*/unity8/qml/Powerd
6usr/lib/*/unity8/qml/SessionBroadcast
7usr/lib/*/unity8/qml/SessionBroadcast
7usr/lib/*/unity8/qml/Ubuntu
8usr/lib/*/unity8/qml/Ubuntu
doc/CMakeLists.txt+2
@@ -15,6 +15,8 @@ else()
15 ${CMAKE_SOURCE_DIR}/src/*.cpp
15 ${CMAKE_SOURCE_DIR}/src/*.cpp
16 ${CMAKE_SOURCE_DIR}/plugins/*.h
16 ${CMAKE_SOURCE_DIR}/plugins/*.h
17 ${CMAKE_SOURCE_DIR}/plugins/*.cpp
17 ${CMAKE_SOURCE_DIR}/plugins/*.cpp
18+ ${CMAKE_SOURCE_DIR}/plugins/*.qml
19+ ${CMAKE_SOURCE_DIR}/plugins/*.js
18 ${CMAKE_SOURCE_DIR}/qml/*.qml
20 ${CMAKE_SOURCE_DIR}/qml/*.qml
19 ${CMAKE_SOURCE_DIR}/qml/*.js
21 ${CMAKE_SOURCE_DIR}/qml/*.js
20 ${CMAKE_SOURCE_DIR}/tests/autopilot/*.py
22 ${CMAKE_SOURCE_DIR}/tests/autopilot/*.py
include/paths.h.in−8
@@ -127,12 +127,4 @@ inline void appendImportPaths(QQmlEngine *engine, const QStringList &paths)
127 engine->setImportPathList(importPathList);
127 engine->setImportPathList(importPathList);
128}
128}
129
129
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−
138#endif
130#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()
14add_subdirectory(AccountsService)
14add_subdirectory(AccountsService)
15add_subdirectory(HudClient)
15add_subdirectory(HudClient)
16add_subdirectory(LightDM)
16add_subdirectory(LightDM)
17+add_subdirectory(Lights)
17add_subdirectory(Dash)
18add_subdirectory(Dash)
18add_subdirectory(Powerd)
19add_subdirectory(Powerd)
19add_subdirectory(SessionBroadcast)
20add_subdirectory(SessionBroadcast)
plugins/Dash/CardCreator.js+7−4
@@ -289,6 +289,7 @@ function cardString(template, components) {
289 property var cardData; \n\
289 property var cardData; \n\
290 property var artShapeBorderSource: undefined; \n\
290 property var artShapeBorderSource: undefined; \n\
291 property real fontScale: 1.0; \n\
291 property real fontScale: 1.0; \n\
292+ property var scopeStyle: null; \n\
292 property int headerAlignment: Text.AlignLeft; \n\
293 property int headerAlignment: Text.AlignLeft; \n\
293 property int fixedHeaderHeight: -1; \n\
294 property int fixedHeaderHeight: -1; \n\
294 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
295 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
@@ -305,7 +306,7 @@ function cardString(template, components) {
305 var hasTitle = components["title"] || false;
306 var hasTitle = components["title"] || false;
306 var hasMascot = components["mascot"] || false;
307 var hasMascot = components["mascot"] || false;
307 var headerAsOverlay = hasArt && template && template["overlay"] === true && (hasTitle || hasMascot);
308 var headerAsOverlay = hasArt && template && template["overlay"] === true && (hasTitle || hasMascot);
308− var hasSubtitle = components["subtitle"] || false;
309+ var hasSubtitle = hasTitle && components["subtitle"] || false;
309 var hasHeaderRow = hasMascot && hasTitle;
310 var hasHeaderRow = hasMascot && hasTitle;
310
311
311 if (hasBackground) {
312 if (hasBackground) {
@@ -407,7 +408,7 @@ function cardString(template, components) {
407 mascotCode = kMascotImageCode.arg(anchors).arg(mascotImageVisible);
408 mascotCode = kMascotImageCode.arg(anchors).arg(mascotImageVisible);
408 }
409 }
409
410
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")';
411
412
412 var titleSubtitleCode = "";
413 var titleSubtitleCode = "";
413 if (hasTitle) {
414 if (hasTitle) {
@@ -419,7 +420,7 @@ function cardString(template, components) {
419 } else if (hasBackground) {
420 } else if (hasBackground) {
420 color = summaryColorWithBackground;
421 color = summaryColorWithBackground;
421 } else {
422 } else {
422− color = '"grey"';
423+ color = 'root.scopeStyle ? root.scopeStyle.foreground : "grey"';
423 }
424 }
424
425
425 var titleAnchors;
426 var titleAnchors;
@@ -495,7 +496,7 @@ function cardString(template, components) {
495 if (hasBackground) {
496 if (hasBackground) {
496 color = summaryColorWithBackground;
497 color = summaryColorWithBackground;
497 } else {
498 } else {
498− color = '"grey"';
499+ color = 'root.scopeStyle ? root.scopeStyle.foreground : "grey"';
499 }
500 }
500
501
501 var summaryTopMargin = (hasMascot || hasSubtitle ? 'anchors.margins' : '0');
502 var summaryTopMargin = (hasMascot || hasSubtitle ? 'anchors.margins' : '0');
@@ -513,6 +514,8 @@ function cardString(template, components) {
513 code += 'implicitHeight: subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
514 code += 'implicitHeight: subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
514 } else if (hasTitle) {
515 } else if (hasTitle) {
515 code += 'implicitHeight: titleLabel.y + titleLabel.height + units.gu(1);\n';
516 code += 'implicitHeight: titleLabel.y + titleLabel.height + units.gu(1);\n';
517+ } else if (hasArt) {
518+ code += 'implicitHeight: artShapeHolder.height;\n';
516 }
519 }
517 // Close the AbstractButton
520 // Close the AbstractButton
518 code += '}\n';
521 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)
141void ListViewWithPageHeader::ListItem::setSectionItem(QQuickItem *sectionItem)
141void ListViewWithPageHeader::ListItem::setSectionItem(QQuickItem *sectionItem)
142{
142{
143 m_sectionItem = sectionItem;
143 m_sectionItem = sectionItem;
144− QQmlContext *context = QQmlEngine::contextForObject(m_item)->parentContext();
145− context->setContextProperty(QLatin1String("hasSectionHeader"), QVariant::fromValue<bool>(sectionItem != nullptr));
146}
144}
147
145
148ListViewWithPageHeader::ListViewWithPageHeader()
146ListViewWithPageHeader::ListViewWithPageHeader()
@@ -658,7 +656,7 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
658 if (flags & QQmlDelegateModel::Destroyed) {
656 if (flags & QQmlDelegateModel::Destroyed) {
659 item->setParentItem(nullptr);
657 item->setParentItem(nullptr);
660 }
658 }
661− delete listItem->sectionItem();
659+ listItem->sectionItem()->deleteLater();
662 delete listItem;
660 delete listItem;
663}
661}
664
662
@@ -685,8 +683,6 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(int modelIndex, bool alreadyI
685 return nullptr;
683 return nullptr;
686
684
687 const QString section = m_delegateModel->stringValue(modelIndex, m_sectionProperty);
685 const QString section = m_delegateModel->stringValue(modelIndex, m_sectionProperty);
688− if (section.isEmpty())
689− return nullptr;
690
686
691 if (modelIndex > 0) {
687 if (modelIndex > 0) {
692 const QString prevSection = m_delegateModel->stringValue(modelIndex - 1, m_sectionProperty);
688 const QString prevSection = m_delegateModel->stringValue(modelIndex - 1, m_sectionProperty);
@@ -877,7 +873,6 @@ void ListViewWithPageHeader::itemCreated(int modelIndex, QObject *object)
877 QQmlContext *context = QQmlEngine::contextForObject(item)->parentContext();
873 QQmlContext *context = QQmlEngine::contextForObject(item)->parentContext();
878 context->setContextProperty(QLatin1String("ListViewWithPageHeader"), this);
874 context->setContextProperty(QLatin1String("ListViewWithPageHeader"), this);
879 context->setContextProperty(QLatin1String("heightToClip"), QVariant::fromValue<int>(0));
875 context->setContextProperty(QLatin1String("heightToClip"), QVariant::fromValue<int>(0));
880− context->setContextProperty(QLatin1String("hasSectionHeader"), QVariant::fromValue<bool>(false));
881 if (modelIndex == m_asyncRequestedIndex) {
876 if (modelIndex == m_asyncRequestedIndex) {
882 createItem(modelIndex, false);
877 createItem(modelIndex, false);
883 refill();
878 refill();
plugins/Dash/qmldir+1
@@ -2,3 +2,4 @@ module Dash
2plugin Dash-qml
2plugin Dash-qml
3typeinfo Dash.qmltypes
3typeinfo Dash.qmltypes
4singleton CardCreatorCache 0.1 CardCreatorCache.qml
4singleton 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(
15
15
16set(QMLPLUGIN_SRC
16set(QMLPLUGIN_SRC
17 ../Utils/qsortfilterproxymodelqml.cpp # FIXME evaluate a more generic approach for using other plugins
17 ../Utils/qsortfilterproxymodelqml.cpp # FIXME evaluate a more generic approach for using other plugins
18+ DBusGreeter.cpp
18 DBusGreeterList.cpp
19 DBusGreeterList.cpp
19 Greeter.cpp
20 Greeter.cpp
20 plugin.cpp
21 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:
25 explicit GreeterPrivate(Greeter *parent);
25 explicit GreeterPrivate(Greeter *parent);
26
26
27 QLightDM::Greeter *m_greeter;
27 QLightDM::Greeter *m_greeter;
28+ bool m_active;
28 bool wasPrompted;
29 bool wasPrompted;
29 bool promptless;
30 bool promptless;
30
31
@@ -38,6 +39,7 @@ private:
38
39
39GreeterPrivate::GreeterPrivate(Greeter* parent)
40GreeterPrivate::GreeterPrivate(Greeter* parent)
40 : m_greeter(new QLightDM::Greeter(parent)),
41 : m_greeter(new QLightDM::Greeter(parent)),
42+ m_active(false),
41 wasPrompted(false),
43 wasPrompted(false),
42 promptless(false),
44 promptless(false),
43 q_ptr(parent)
45 q_ptr(parent)
@@ -60,6 +62,21 @@ Greeter::Greeter(QObject* parent)
60 d->m_greeter->connectSync();
62 d->m_greeter->connectSync();
61}
63}
62
64
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+
63bool Greeter::isAuthenticated() const
80bool Greeter::isAuthenticated() const
64{
81{
65 Q_D(const Greeter);
82 Q_D(const Greeter);
plugins/LightDM/Greeter.h+5
@@ -34,6 +34,7 @@ class Greeter : public QObject
34{
34{
35 Q_OBJECT
35 Q_OBJECT
36
36
37+ Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
37 Q_PROPERTY(bool authenticated READ isAuthenticated)
38 Q_PROPERTY(bool authenticated READ isAuthenticated)
38 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
39 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
39 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
40 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
@@ -41,6 +42,7 @@ class Greeter : public QObject
41public:
42public:
42 explicit Greeter(QObject* parent=0);
43 explicit Greeter(QObject* parent=0);
43
44
45+ bool isActive() const;
44 bool isAuthenticated() const;
46 bool isAuthenticated() const;
45 QString authenticationUser() const;
47 QString authenticationUser() const;
46 bool promptless() const;
48 bool promptless() const;
@@ -49,13 +51,16 @@ public Q_SLOTS:
49 void authenticate(const QString &username=QString());
51 void authenticate(const QString &username=QString());
50 void respond(const QString &response);
52 void respond(const QString &response);
51 bool startSessionSync(const QString &session=QString());
53 bool startSessionSync(const QString &session=QString());
54+ void setIsActive(bool isActive);
52
55
53Q_SIGNALS:
56Q_SIGNALS:
54 void showMessage(const QString &text, bool isError);
57 void showMessage(const QString &text, bool isError);
55 void showPrompt(const QString &text, bool isSecret);
58 void showPrompt(const QString &text, bool isSecret);
56 void authenticationComplete();
59 void authenticationComplete();
57 void authenticationUserChanged(const QString &user);
60 void authenticationUserChanged(const QString &user);
61+ void isActiveChanged();
58 void promptlessChanged();
62 void promptlessChanged();
63+ void showGreeter();
59
64
60 // This signal is emitted by external agents like indicators, and the UI
65 // This signal is emitted by external agents like indicators, and the UI
61 // should switch to this user if possible.
66 // 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 @@
18 */
18 */
19
19
20#include "plugin.h"
20#include "plugin.h"
21+#include "DBusGreeter.h"
21#include "DBusGreeterList.h"
22#include "DBusGreeterList.h"
22#include "Greeter.h"
23#include "Greeter.h"
23#include "UsersModel.h"
24#include "UsersModel.h"
@@ -39,6 +40,8 @@ static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
39
40
40 Greeter *greeter = new Greeter();
41 Greeter *greeter = new Greeter();
41 QDBusConnection connection = QDBusConnection::sessionBus();
42 QDBusConnection connection = QDBusConnection::sessionBus();
43+ DBusGreeter *root = new DBusGreeter(greeter, connection, "/");
44+ connection.registerObject("/", root, QDBusConnection::ExportScriptableContents);
42 DBusGreeterList *list = new DBusGreeterList(greeter, connection, GREETER_LIST_DBUS_PATH);
45 DBusGreeterList *list = new DBusGreeterList(greeter, connection, GREETER_LIST_DBUS_PATH);
43 connection.registerObject(GREETER_LIST_DBUS_PATH, list, QDBusConnection::ExportScriptableContents);
46 connection.registerObject(GREETER_LIST_DBUS_PATH, list, QDBusConnection::ExportScriptableContents);
44 connection.registerService(GREETER_DBUS_SERVICE);
47 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 @@
1add_subdirectory(Gestures)
1add_subdirectory(Gestures)
2add_subdirectory(DownloadDaemonListener)
2add_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)
378 // touch has ended before recognition concluded
378 // touch has ended before recognition concluded
379 DDA_DEBUG("Touch has ended before recognition concluded");
379 DDA_DEBUG("Touch has ended before recognition concluded");
380 setStatus(WaitingForTouch);
380 setStatus(WaitingForTouch);
381+ Q_EMIT tapped();
381 return;
382 return;
382 }
383 }
383
384
plugins/Ubuntu/Gestures/DirectionalDragArea.h+1
@@ -212,6 +212,7 @@ Q_SIGNALS:
212 void touchYChanged(qreal value);
212 void touchYChanged(qreal value);
213 void touchSceneXChanged(qreal value);
213 void touchSceneXChanged(qreal value);
214 void touchSceneYChanged(qreal value);
214 void touchSceneYChanged(qreal value);
215+ void tapped();
215
216
216protected:
217protected:
217 virtual void touchEvent(QTouchEvent *event);
218 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 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
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
5 * it under the terms of the GNU General Public License as published by
@@ -14,9 +14,15 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0
17+#include "plugin.h"
18−import Ubuntu.Components 0.1
18+#include "Payments.h"
19
19
20−BorderImage {
20+#include <QtQml>
21− source: "graphics/sidestage_handle.sci"
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");
22}
28}
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
51
51
52qt5_use_modules(IndicatorsQml Core Qml Quick)
52qt5_use_modules(IndicatorsQml Core Qml Quick)
53
53
54−add_unity8_plugin(Unity.Indicators 0.1 Unity/Indicators
54+add_unity8_plugin(Unity.Indicators 0.1 Unity/Indicators TARGETS IndicatorsQml)
55− SEARCH_PATH qml
56− TARGETS IndicatorsQml
57−)
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
40 m_quickList->appendAction(nameAction);
40 m_quickList->appendAction(nameAction);
41 QuickListEntry pinningAction;
41 QuickListEntry pinningAction;
42 pinningAction.setActionId("pin_item");
42 pinningAction.setActionId("pin_item");
43− pinningAction.setText(gettext("Lock to Launcher"));
43+ pinningAction.setText(gettext("Pin shortcut"));
44 m_quickList->appendAction(pinningAction);
44 m_quickList->appendAction(pinningAction);
45}
45}
46
46
@@ -70,7 +70,7 @@ void LauncherItem::setPinned(bool pinned)
70 m_pinned = pinned;
70 m_pinned = pinned;
71 QuickListEntry entry;
71 QuickListEntry entry;
72 entry.setActionId("pin_item");
72 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"));
74 m_quickList->updateAction(entry);
74 m_quickList->updateAction(entry);
75 Q_EMIT pinnedChanged(pinned);
75 Q_EMIT pinnedChanged(pinned);
76 }
76 }
plugins/Unity/Launcher/launchermodel.cpp+6−3
@@ -128,7 +128,7 @@ void LauncherModel::pin(const QString &appId, int index)
128 if (index == -1 || index == currentIndex) {
128 if (index == -1 || index == currentIndex) {
129 m_list.at(currentIndex)->setPinned(true);
129 m_list.at(currentIndex)->setPinned(true);
130 QModelIndex modelIndex = this->index(currentIndex);
130 QModelIndex modelIndex = this->index(currentIndex);
131− Q_EMIT dataChanged(modelIndex, modelIndex);
131+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
132 } else {
132 } else {
133 move(currentIndex, index);
133 move(currentIndex, index);
134 // move() will store the list to the backend itself, so just exit at this point.
134 // 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)
141 beginInsertRows(QModelIndex(), index, index);
141 beginInsertRows(QModelIndex(), index, index);
142 LauncherItem *item = new LauncherItem(appId,
142 LauncherItem *item = new LauncherItem(appId,
143 m_backend->displayName(appId),
143 m_backend->displayName(appId),
144− m_backend->icon(appId));
144+ m_backend->icon(appId),
145+ this);
145 item->setPinned(true);
146 item->setPinned(true);
146 m_list.insert(index, item);
147 m_list.insert(index, item);
147 endInsertRows();
148 endInsertRows();
@@ -159,6 +160,8 @@ void LauncherModel::requestRemove(const QString &appId)
159
160
160 if (m_appManager->findApplication(appId)) {
161 if (m_appManager->findApplication(appId)) {
161 m_list.at(index)->setPinned(false);
162 m_list.at(index)->setPinned(false);
163+ QModelIndex modelIndex = this->index(index);
164+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
162 return;
165 return;
163 }
166 }
164
167
@@ -324,7 +327,7 @@ void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
324 if (found) {
327 if (found) {
325 // Shall we paint some running/recent app highlight? If yes, do it here.
328 // Shall we paint some running/recent app highlight? If yes, do it here.
326 } else {
329 } 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);
328 item->setRecent(true);
331 item->setRecent(true);
329 item->setFocused(app->focused());
332 item->setFocused(app->focused());
330
333
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 @@
19
19
20// Qt
20// Qt
21#include <QDBusConnection>
21#include <QDBusConnection>
22+#include <QDBusInterface>
22
23
23DBusUnitySessionService::DBusUnitySessionService() : QObject()
24DBusUnitySessionService::DBusUnitySessionService() : QObject()
24{
25{
@@ -44,3 +45,35 @@ void DBusUnitySessionService::RequestLogout()
44{
45{
45 Q_EMIT logoutRequested(false);
46 Q_EMIT logoutRequested(false);
46}
47}
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:
46 */
46 */
47 void logoutRequested(bool have_inhibitors);
47 void logoutRequested(bool have_inhibitors);
48
48
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+
49 /**
70 /**
50 * logoutReady signal
71 * logoutReady signal
51 *
72 *
@@ -61,22 +82,58 @@ public Q_SLOTS:
61 * This method directly logout the system without user's confirmation.
82 * This method directly logout the system without user's confirmation.
62 * Ordinary applications should avoid calling this method. Please call
83 * Ordinary applications should avoid calling this method. Please call
63 * RequestLogout() to ask the user to decide logout or not.
84 * 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.
66 */
85 */
67 Q_SCRIPTABLE void Logout();
86 Q_SCRIPTABLE void Logout();
68
87
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+
69 /**
106 /**
70 * Issue a logout request.
107 * Issue a logout request.
71 *
108 *
72 * This method emit the logoutRequested signal to the shell with a boolean
109 * This method emit the logoutRequested signal to the shell with a boolean
73 * which indicates if there's any inhibitors. The shell should receive
110 * which indicates if there's any inhibitors. The shell should receive
74 * this signal and display a dialog to ask the user to confirm the logout
111 * 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
112+ * action. If confirmed, shell can call Logout() method to logout.
76− * and then logout
77 */
113 */
78 Q_SCRIPTABLE void RequestLogout();
114 Q_SCRIPTABLE void RequestLogout();
79
115
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+
80};
137};
81
138
82#endif // DBUSUNITYSESSIONSERVICE_H
139#endif // DBUSUNITYSESSIONSERVICE_H
plugins/Utils/CMakeLists.txt+1
@@ -15,6 +15,7 @@ set(QMLPLUGIN_SRC
15 qsortfilterproxymodelqml.cpp
15 qsortfilterproxymodelqml.cpp
16 timeformatter.cpp
16 timeformatter.cpp
17 unitymenumodelpaths.cpp
17 unitymenumodelpaths.cpp
18+ windowkeysfilter.cpp
18 easingcurve.cpp
19 easingcurve.cpp
19 plugin.cpp
20 plugin.cpp
20 )
21 )
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 @@
20
20
21
21
22EasingCurve::EasingCurve(QObject *parent):
22EasingCurve::EasingCurve(QObject *parent):
23− QObject(parent)
23+ QObject(parent),
24+ m_progress(0),
25+ m_value(0)
24{
26{
25
27
26}
28}
@@ -32,7 +34,11 @@ QEasingCurve::Type EasingCurve::type() const
32
34
33void EasingCurve::setType(const QEasingCurve::Type &type)
35void EasingCurve::setType(const QEasingCurve::Type &type)
34{
36{
37+ // FIXME: Working around bug https://bugreports.qt-project.org/browse/QTBUG-38686 here
38+ QEasingCurve newCurve;
35− m_easingCurve.setType(type);
39+ newCurve.setType(type);
40+ newCurve.setPeriod(m_easingCurve.period());
41+ m_easingCurve = newCurve;
36 Q_EMIT typeChanged();
42 Q_EMIT typeChanged();
37}
43}
38
44
plugins/Utils/plugin.cpp+2
@@ -30,6 +30,7 @@
30#include "qsortfilterproxymodelqml.h"
30#include "qsortfilterproxymodelqml.h"
31#include "timeformatter.h"
31#include "timeformatter.h"
32#include "unitymenumodelpaths.h"
32#include "unitymenumodelpaths.h"
33+#include "windowkeysfilter.h"
33#include "easingcurve.h"
34#include "easingcurve.h"
34
35
35void UtilsPlugin::registerTypes(const char *uri)
36void UtilsPlugin::registerTypes(const char *uri)
@@ -40,6 +41,7 @@ void UtilsPlugin::registerTypes(const char *uri)
40 qmlRegisterType<QSortFilterProxyModelQML>(uri, 0, 1, "SortFilterProxyModel");
41 qmlRegisterType<QSortFilterProxyModelQML>(uri, 0, 1, "SortFilterProxyModel");
41 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
42 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
42 qmlRegisterType<TimeFormatter>(uri, 0, 1, "TimeFormatter");
43 qmlRegisterType<TimeFormatter>(uri, 0, 1, "TimeFormatter");
44+ qmlRegisterType<WindowKeysFilter>(uri, 0, 1, "WindowKeysFilter");
43 qmlRegisterType<GDateTimeFormatter>(uri, 0, 1, "GDateTimeFormatter");
45 qmlRegisterType<GDateTimeFormatter>(uri, 0, 1, "GDateTimeFormatter");
44 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
46 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
45}
47}
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-01-18 19:28+0000\n"
11+"PO-Revision-Date: 2014-07-27 01:25+0000\n"
12"Last-Translator: samson <Unknown>\n"
12"Last-Translator: samson <Unknown>\n"
13"Language-Team: Amharic <am@li.org>\n"
13"Language-Team: Amharic <am@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ማስነሻው ላይ መቆለፊያ"
23+msgstr "አቋራጭ ማጣበቂያ"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ከማስነሻው ላይ ማላቀቂያ"
27+msgstr "አቋራጭ መለያያ"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
31−msgstr ""
31+msgstr "መግቢያውን መዝለያ"
32
32
33#: qml/Components/EdgeDemo.qml:113
33#: qml/Components/EdgeDemo.qml:113
34msgid "Right edge"
34msgid "Right edge"
@@ -74,15 +74,11 @@ msgstr ""
74
74
75#: qml/Components/Lockscreen.qml:214
75#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
76msgid "Emergency Call"
77−msgstr ""
77+msgstr "የ ድንገተኛ ጥሪ"
78
78
79#: qml/Components/Lockscreen.qml:231
79#: qml/Components/Lockscreen.qml:231
80msgid "OK"
80msgid "OK"
81−msgstr ""
81+msgstr "እሺ"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86
82
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
@@ -95,41 +91,45 @@ msgstr "ሰላም"
95
91
96#: qml/Components/PinLockscreen.qml:198
92#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
93msgid "CANCEL"
98−msgstr ""
94+msgstr "መሰረዣ"
99
95
100#: qml/Components/PinLockscreen.qml:216
96#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
97msgid "DONE"
102−msgstr ""
98+msgstr "ጨርሷል"
103
99
104#: qml/Components/SeeMore.qml:35
100#: qml/Components/SeeMore.qml:35
105msgid "See more"
101msgid "See more"
106−msgstr ""
102+msgstr "ተጨማሪ መመልከቻ"
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110−msgstr ""
106+msgstr "አነስተኛ መመልከቻ"
111
107
112#: qml/Dash/DashApps.qml:37
108#: qml/Dash/DashApps.qml:37
113msgid "Recent"
109msgid "Recent"
114−msgstr ""
110+msgstr "የቅርብ ጊዜ"
111+
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "ሁሉንም መመልከቻ"
115
115
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118−msgstr ""
118+msgstr "ተጨማሪ..."
119
119
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
121msgid "Less..."
122−msgstr ""
122+msgstr "አነስተኛ..."
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130−msgstr ""
130+msgstr "ግምገማ መጨመሪያ"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "መላኪያ"
134msgstr "መላኪያ"
135
135
@@ -165,11 +165,43 @@ msgstr "የመግቢያ ቃል ማሳያ"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "መፈለጊያ"
202msgstr "መፈለጊያ"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "እባክዎን ያስገቡ %1"
207msgstr "እባክዎን ያስገቡ %1"
po/ar.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ثبّت في الشريط"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "فُك التثبيت من الشريط"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -83,10 +83,6 @@ msgstr "مكالمة طوارئ"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "عمليات البحث الأخيرة"
89−
90#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
91#, qt-format
87#, qt-format
92msgid "Hello %1"
88msgid "Hello %1"
@@ -108,7 +104,7 @@ msgstr ""
108msgid "See more"
104msgid "See more"
109msgstr "شاهد المزيد"
105msgstr "شاهد المزيد"
110
106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112msgid "See less"
108msgid "See less"
113msgstr "شاهد أقل"
109msgstr "شاهد أقل"
114
110
@@ -116,6 +112,10 @@ msgstr "شاهد أقل"
116msgid "Recent"
112msgid "Recent"
117msgstr "استُخدمت مؤخرًا"
113msgstr "استُخدمت مؤخرًا"
118
114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120msgid "More..."
120msgid "More..."
121msgstr "المزيد..."
121msgstr "المزيد..."
@@ -124,15 +124,15 @@ msgstr "المزيد..."
124msgid "Less..."
124msgid "Less..."
125msgstr "أقل..."
125msgstr "أقل..."
126
126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128msgid "Rate this"
128msgid "Rate this"
129msgstr "قيّم ذلك"
129msgstr "قيّم ذلك"
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132msgid "Add a review"
132msgid "Add a review"
133msgstr "أضف تعليق"
133msgstr "أضف تعليق"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136msgid "Send"
136msgid "Send"
137msgstr "أرسل"
137msgstr "أرسل"
138
138
@@ -168,11 +168,43 @@ msgstr "عرض كلمة السر"
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
169msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
170
170
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+
171#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
204msgid "Search"
173msgstr "ابحث"
205msgstr "ابحث"
174
206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176#, qt-format
208#, qt-format
177msgid "Please enter %1"
209msgid "Please enter %1"
178msgstr "من فضلك أدخِل %1"
210msgstr "من فضلك أدخِل %1"
po/ast.po+57−25
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-04-04 02:16+0000\n"
11+"PO-Revision-Date: 2014-07-25 16:51+0000\n"
12−"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
12+"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Caltener nel Llanzador"
23+msgstr "Anclar"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Nun caltener nel llanzador"
27+msgstr "Desanclar"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -73,8 +73,8 @@ msgid ""
73"You have now mastered the edge gestures and can start using the "
73"You have now mastered the edge gestures and can start using the "
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76−"Agora domina los xestos de los bordes y pue principiar a usar el "
76+"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
77−"teléfonu<br><br>Toque la pantalla pa comenzar"
77+"teléfonu<br><br>Toca la pantalla pa comenzar"
78
78
79#: qml/Components/Lockscreen.qml:214
79#: qml/Components/Lockscreen.qml:214
80msgid "Emergency Call"
80msgid "Emergency Call"
@@ -82,11 +82,7 @@ msgstr "Llamada d'emerxencia"
82
82
83#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
84msgid "OK"
84msgid "OK"
85−msgstr ""
85+msgstr "Aceutar"
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Busques recientes"
90
86
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
@@ -99,17 +95,17 @@ msgstr "Hola"
99
95
100#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
101msgid "CANCEL"
97msgid "CANCEL"
102−msgstr ""
98+msgstr "ENCABOXAR"
103
99
104#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
105msgid "DONE"
101msgid "DONE"
106−msgstr ""
102+msgstr "FECHO"
107
103
108#: qml/Components/SeeMore.qml:35
104#: qml/Components/SeeMore.qml:35
109msgid "See more"
105msgid "See more"
110msgstr "Ver más"
106msgstr "Ver más"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "Ver menos"
110msgstr "Ver menos"
115
111
@@ -117,6 +113,10 @@ msgstr "Ver menos"
117msgid "Recent"
113msgid "Recent"
118msgstr "Reciente"
114msgstr "Reciente"
119
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Ver too"
119+
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122msgstr "Más…"
122msgstr "Más…"
@@ -125,21 +125,21 @@ msgstr "Más…"
125msgid "Less..."
125msgid "Less..."
126msgstr "Menos…"
126msgstr "Menos…"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "Valorar esto"
130msgstr "Valorar esto"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "Amestar una reseña"
134msgstr "Amestar una reseña"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "Unviar"
138msgstr "Unviar"
139
139
140#: qml/Greeter/Greeter.qml:157
140#: qml/Greeter/Greeter.qml:157
141msgid "Swipe to unlock"
141msgid "Swipe to unlock"
142−msgstr ""
142+msgstr "Esliza pa desbloquiar"
143
143
144#: qml/Hud/HudParametrizedActionsPage.qml:132
144#: qml/Hud/HudParametrizedActionsPage.qml:132
145msgid "Confirm"
145msgid "Confirm"
@@ -167,13 +167,45 @@ msgstr "Amosar contraseña"
167
167
168#: qml/Notifications/NotificationMenuItemFactory.qml:103
168#: qml/Notifications/NotificationMenuItemFactory.qml:103
169msgid "Please enter SIM PIN"
169msgid "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"
171
203
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "Guetar"
206msgstr "Guetar"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "Introduz %1"
211msgstr "Introduz %1"
po/az.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-15 09:50+0000\n"
11"PO-Revision-Date: 2014-01-15 09:50+0000\n"
12"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
12"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Panelə Bərkit"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Paneldən Qaldır"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -81,10 +81,6 @@ msgstr "Zərurət zəngi"
81msgid "OK"
81msgid "OK"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/PageHeader.qml:365
85−msgid "Recent searches"
86−msgstr "Son axtarışlar"
87−
88#: qml/Components/PassphraseLockscreen.qml:60
84#: qml/Components/PassphraseLockscreen.qml:60
89#, qt-format
85#, qt-format
90msgid "Hello %1"
86msgid "Hello %1"
@@ -106,7 +102,7 @@ msgstr ""
106msgid "See more"
102msgid "See more"
107msgstr ""
103msgstr ""
108
104
109−#: qml/Components/SeeMore.qml:58
105+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
110msgid "See less"
106msgid "See less"
111msgstr ""
107msgstr ""
112
108
@@ -114,6 +110,10 @@ msgstr ""
114msgid "Recent"
110msgid "Recent"
115msgstr ""
111msgstr ""
116
112
113+#: qml/Dash/GenericScopeView.qml:330
114+msgid "See all"
115+msgstr ""
116+
117#: qml/Dash/Previews/PreviewActionCombo.qml:34
117#: qml/Dash/Previews/PreviewActionCombo.qml:34
118msgid "More..."
118msgid "More..."
119msgstr ""
119msgstr ""
@@ -122,15 +122,15 @@ msgstr ""
122msgid "Less..."
122msgid "Less..."
123msgstr ""
123msgstr ""
124
124
125−#: qml/Dash/Previews/PreviewRatingInput.qml:82
125+#: qml/Dash/Previews/PreviewRatingInput.qml:81
126msgid "Rate this"
126msgid "Rate this"
127msgstr "Qiymət ver"
127msgstr "Qiymət ver"
128
128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:128
129+#: qml/Dash/Previews/PreviewRatingInput.qml:126
130msgid "Add a review"
130msgid "Add a review"
131msgstr "Rəy yaz"
131msgstr "Rəy yaz"
132
132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:168
133+#: qml/Dash/Previews/PreviewRatingInput.qml:166
134msgid "Send"
134msgid "Send"
135msgstr "Göndər"
135msgstr "Göndər"
136
136
@@ -166,11 +166,43 @@ msgstr "Parolu göstər"
166msgid "Please enter SIM PIN"
166msgid "Please enter SIM PIN"
167msgstr ""
167msgstr ""
168
168
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+
169#: qml/Panel/SearchIndicator.qml:27
201#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
202msgid "Search"
171msgstr "Axtar"
203msgstr "Axtar"
172
204
173−#: qml/Shell.qml:334
205+#: qml/Shell.qml:359
174#, qt-format
206#, qt-format
175msgid "Please enter %1"
207msgid "Please enter %1"
176msgstr "Xahiş edirik daxil edin: %1"
208msgstr "Xahiş edirik daxil edin: %1"
po/bg.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Заключване към панела"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Отключи от панела за стартиране"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Спешно повикване"
87msgid "OK"
87msgid "OK"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Последни търсения"
93−
94#: qml/Components/PassphraseLockscreen.qml:60
90#: qml/Components/PassphraseLockscreen.qml:60
95#, qt-format
91#, qt-format
96msgid "Hello %1"
92msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr ""
112msgid "See more"
108msgid "See more"
113msgstr ""
109msgstr ""
114
110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116msgid "See less"
112msgid "See less"
117msgstr ""
113msgstr ""
118
114
@@ -120,6 +116,10 @@ msgstr ""
120msgid "Recent"
116msgid "Recent"
121msgstr "Последни"
117msgstr "Последни"
122
118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr ""
122+
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124msgid "More..."
124msgid "More..."
125msgstr ""
125msgstr ""
@@ -128,15 +128,15 @@ msgstr ""
128msgid "Less..."
128msgid "Less..."
129msgstr "По-малко..."
129msgstr "По-малко..."
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132msgid "Rate this"
132msgid "Rate this"
133msgstr "Оценете това"
133msgstr "Оценете това"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136msgid "Add a review"
136msgid "Add a review"
137msgstr "Добави отзив"
137msgstr "Добави отзив"
138
138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140msgid "Send"
140msgid "Send"
141msgstr "Изпрати"
141msgstr "Изпрати"
142
142
@@ -172,11 +172,43 @@ msgstr "Покажи паролата"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr ""
173msgstr ""
174
174
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+
175#: qml/Panel/SearchIndicator.qml:27
207#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
208msgid "Search"
177msgstr "Търсене"
209msgstr "Търсене"
178
210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180#, qt-format
212#, qt-format
181msgid "Please enter %1"
213msgid "Please enter %1"
182msgstr "Моля, въведете %1"
214msgstr "Моля, въведете %1"
po/br.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-16 11:41+0000\n"
11+"PO-Revision-Date: 2014-07-28 06:44+0000\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
13"Language-Team: Breton <br@li.org>\n"
13"Language-Team: Breton <br@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-29 06:54+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Stagañ ouzh al lañser"
23+msgstr "Spilhennañ ar verradenn"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Distagañ diouzh al lañser"
27+msgstr "Dispilhennañ ar verradenn"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Pellgomzadenn vallus"
87msgid "OK"
87msgid "OK"
88msgstr "Mat eo"
88msgstr "Mat eo"
89
89
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Enklaskoù graet nevez zo"
93−
94#: qml/Components/PassphraseLockscreen.qml:60
90#: qml/Components/PassphraseLockscreen.qml:60
95#, qt-format
91#, qt-format
96msgid "Hello %1"
92msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr "ECHU"
112msgid "See more"
108msgid "See more"
113msgstr "Gwelet muioc'h"
109msgstr "Gwelet muioc'h"
114
110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116msgid "See less"
112msgid "See less"
117msgstr "Gwelet nebeutoc'h"
113msgstr "Gwelet nebeutoc'h"
118
114
@@ -120,6 +116,10 @@ msgstr "Gwelet nebeutoc'h"
120msgid "Recent"
116msgid "Recent"
121msgstr "Nevez zo"
117msgstr "Nevez zo"
122
118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr "Gwelet pep tra"
122+
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124msgid "More..."
124msgid "More..."
125msgstr "Muioc'h..."
125msgstr "Muioc'h..."
@@ -128,15 +128,15 @@ msgstr "Muioc'h..."
128msgid "Less..."
128msgid "Less..."
129msgstr "Nebeutoc'h..."
129msgstr "Nebeutoc'h..."
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132msgid "Rate this"
132msgid "Rate this"
133msgstr "Priziit an dra-mañ"
133msgstr "Priziit an dra-mañ"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136msgid "Add a review"
136msgid "Add a review"
137msgstr "Ouzhpennañ un ali"
137msgstr "Ouzhpennañ un ali"
138
138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140msgid "Send"
140msgid "Send"
141msgstr "Kas"
141msgstr "Kas"
142
142
@@ -172,11 +172,43 @@ msgstr "Diskouez ar ger-tremen"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
173msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
174
174
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+
175#: qml/Panel/SearchIndicator.qml:27
207#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
208msgid "Search"
177msgstr "Klask"
209msgstr "Klask"
178
210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180#, qt-format
212#, qt-format
181msgid "Please enter %1"
213msgid "Please enter %1"
182msgstr "Ebarzhit %1, mar plij"
214msgstr "Ebarzhit %1, mar plij"
po/bs.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/ca.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-13 07:47+0000\n"
11+"PO-Revision-Date: 2014-07-25 10:21+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Mantén-la al llançador"
23+msgstr "Enganxa la drecera"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "No la mantinguis al llançador"
27+msgstr "Desenganxa la drecera"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -88,10 +88,6 @@ msgstr "Trucada d'emergència"
88msgid "OK"
88msgid "OK"
89msgstr "D'acord"
89msgstr "D'acord"
90
90
91−#: qml/Components/PageHeader.qml:365
92−msgid "Recent searches"
93−msgstr "Cerques recents"
94−
95#: qml/Components/PassphraseLockscreen.qml:60
91#: qml/Components/PassphraseLockscreen.qml:60
96#, qt-format
92#, qt-format
97msgid "Hello %1"
93msgid "Hello %1"
@@ -113,7 +109,7 @@ msgstr "Fet"
113msgid "See more"
109msgid "See more"
114msgstr "Mostra'n més"
110msgstr "Mostra'n més"
115
111
116−#: qml/Components/SeeMore.qml:58
112+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
117msgid "See less"
113msgid "See less"
118msgstr "Mostra'n menys"
114msgstr "Mostra'n menys"
119
115
@@ -121,6 +117,10 @@ msgstr "Mostra'n menys"
121msgid "Recent"
117msgid "Recent"
122msgstr "Recents"
118msgstr "Recents"
123
119
120+#: qml/Dash/GenericScopeView.qml:330
121+msgid "See all"
122+msgstr "Mostra-ho tot"
123+
124#: qml/Dash/Previews/PreviewActionCombo.qml:34
124#: qml/Dash/Previews/PreviewActionCombo.qml:34
125msgid "More..."
125msgid "More..."
126msgstr "Més..."
126msgstr "Més..."
@@ -129,15 +129,15 @@ msgstr "Més..."
129msgid "Less..."
129msgid "Less..."
130msgstr "Menys..."
130msgstr "Menys..."
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:82
132+#: qml/Dash/Previews/PreviewRatingInput.qml:81
133msgid "Rate this"
133msgid "Rate this"
134msgstr "Puntueu-ho"
134msgstr "Puntueu-ho"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:128
136+#: qml/Dash/Previews/PreviewRatingInput.qml:126
137msgid "Add a review"
137msgid "Add a review"
138msgstr "Afegiu una ressenya"
138msgstr "Afegiu una ressenya"
139
139
140−#: qml/Dash/Previews/PreviewRatingInput.qml:168
140+#: qml/Dash/Previews/PreviewRatingInput.qml:166
141msgid "Send"
141msgid "Send"
142msgstr "Envia"
142msgstr "Envia"
143
143
@@ -173,11 +173,43 @@ msgstr "Mostra la contrasenya"
173msgid "Please enter SIM PIN"
173msgid "Please enter SIM PIN"
174msgstr "Introduïu el PIN de la targeta SIM"
174msgstr "Introduïu el PIN de la targeta SIM"
175
175
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+
176#: qml/Panel/SearchIndicator.qml:27
208#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
209msgid "Search"
178msgstr "Cerca"
210msgstr "Cerca"
179
211
180−#: qml/Shell.qml:334
212+#: qml/Shell.qml:359
181#, qt-format
213#, qt-format
182msgid "Please enter %1"
214msgid "Please enter %1"
183msgstr "Introduïu %1"
215msgstr "Introduïu %1"
po/ckb.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "چەسباندن بە لانچرەوە"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ھەڵکەندن لە لانچر"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "هێڵی فریاگوزاری"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "دوایین گەڕانەکان"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "پلە دابنی بۆی"
126msgstr "پلە دابنی بۆی"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "پێداچوونەوە زۆر بکە"
130msgstr "پێداچوونەوە زۆر بکە"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "ناردن"
134msgstr "ناردن"
135
135
@@ -165,11 +165,43 @@ msgstr "تێپەڕەوشە پیشان بدە"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "گەڕان"
202msgstr "گەڕان"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "تکایە %1 بنووسە"
207msgstr "تکایە %1 بنووسە"
po/cs.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Přidat do Launcheru"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Odebrat z Launcheru"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "Tísňové volání"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Poslední vyhledávání"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "Ohodnoťte to"
126msgstr "Ohodnoťte to"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "Přidat recenzi"
130msgstr "Přidat recenzi"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "Odeslat"
134msgstr "Odeslat"
135
135
@@ -165,11 +165,43 @@ msgstr "Zobrazit heslo"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Hledat"
202msgstr "Hledat"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "Zadejte prosím %1"
207msgstr "Zadejte prosím %1"
po/da.po+87−52
@@ -1,175 +1,210 @@
1# Danish translation for unity8
1# Danish translation for unity8
2# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
2# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
3# This file is distributed under the same license as the unity8 package.
3# 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.
5#
6#
6msgid ""
7msgid ""
7msgstr ""
8msgstr ""
8"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-01-14 20:16+0000\n"
12+"PO-Revision-Date: 2014-07-29 23:18+0000\n"
12−"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13+"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
13−"Language-Team: Danish <da@li.org>\n"
14+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"MIME-Version: 1.0\n"
15"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
18+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
19+"X-Generator: Launchpad (build 17131)\n"
19
20
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23+msgid "Pin shortcut"
23−msgstr ""
24+msgstr "Fastgør genvej"
24
25
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27+msgid "Unpin shortcut"
27−msgstr ""
28+msgstr "Gør genvej flytbar"
28
29
29#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
31msgid "Skip intro"
31−msgstr ""
32+msgstr "Spring intro over"
32
33
33#: qml/Components/EdgeDemo.qml:113
34#: qml/Components/EdgeDemo.qml:113
34msgid "Right edge"
35msgid "Right edge"
35−msgstr ""
36+msgstr "Højre kant"
36
37
37#: qml/Components/EdgeDemo.qml:114
38#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
39msgid "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"
40
41
41#: qml/Components/EdgeDemo.qml:145
42#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
43msgid "Top edge"
43−msgstr ""
44+msgstr "Øvre kant"
44
45
45#: qml/Components/EdgeDemo.qml:146
46#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
47msgid "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"
48
49
49#: qml/Components/EdgeDemo.qml:171
50#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
51msgid "Close"
51−msgstr ""
52+msgstr "Luk"
52
53
53#: qml/Components/EdgeDemo.qml:172
54#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
55msgid "Swipe up again to close the settings screen"
55−msgstr ""
56+msgstr "Stryg op igen for at låse indstillingsskærmen"
56
57
57#: qml/Components/EdgeDemo.qml:199
58#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
59msgid "Left edge"
59−msgstr ""
60+msgstr "Venstre kant"
60
61
61#: qml/Components/EdgeDemo.qml:200
62#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63msgid "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"
64
65
65#: qml/Components/EdgeDemo.qml:227
66#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
67msgid "Well done"
67−msgstr ""
68+msgstr "Godt gjort"
68
69
69#: qml/Components/EdgeDemo.qml:228
70#: qml/Components/EdgeDemo.qml:228
70msgid ""
71msgid ""
71"You have now mastered the edge gestures and can start using the "
72"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
73msgstr ""
74msgstr ""
75+"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
76+"på skærmen for at starte"
74
77
75#: qml/Components/Lockscreen.qml:214
78#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
79msgid "Emergency Call"
77−msgstr ""
80+msgstr "Nødopkald"
78
81
79#: qml/Components/Lockscreen.qml:231
82#: qml/Components/Lockscreen.qml:231
80msgid "OK"
83msgid "OK"
81−msgstr ""
84+msgstr "O.k."
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86
85
87#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
87#, qt-format
89msgid "Hello %1"
88msgid "Hello %1"
90−msgstr ""
89+msgstr "Hej %1"
91
90
92#: qml/Components/PassphraseLockscreen.qml:60
91#: qml/Components/PassphraseLockscreen.qml:60
93msgid "Hello"
92msgid "Hello"
94−msgstr ""
93+msgstr "Hej"
95
94
96#: qml/Components/PinLockscreen.qml:198
95#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
96msgid "CANCEL"
98−msgstr ""
97+msgstr "ANNULLÉR"
99
98
100#: qml/Components/PinLockscreen.qml:216
99#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
100msgid "DONE"
102−msgstr ""
101+msgstr "FÆRDIG"
103
102
104#: qml/Components/SeeMore.qml:35
103#: qml/Components/SeeMore.qml:35
105msgid "See more"
104msgid "See more"
106−msgstr ""
105+msgstr "Vis mere"
107
106
108−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
108msgid "See less"
110−msgstr ""
109+msgstr "Vis mindre"
111
110
112#: qml/Dash/DashApps.qml:37
111#: qml/Dash/DashApps.qml:37
113msgid "Recent"
112msgid "Recent"
113+msgstr "Seneste"
114+
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
114msgstr ""
117msgstr ""
115
118
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
120msgid "More..."
118−msgstr ""
121+msgstr "Mere..."
119
122
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
124msgid "Less..."
122−msgstr ""
125+msgstr "Mindre..."
123
126
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
128msgid "Rate this"
126−msgstr ""
129+msgstr "Bedøm dette"
127
130
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
132msgid "Add a review"
130−msgstr ""
133+msgstr "Tilføj en forhåndsvisning"
131
134
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
136msgid "Send"
134−msgstr ""
137+msgstr "Send"
135
138
136#: qml/Greeter/Greeter.qml:157
139#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
140msgid "Swipe to unlock"
138−msgstr ""
141+msgstr "Stryg for at låse op"
139
142
140#: qml/Hud/HudParametrizedActionsPage.qml:132
143#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
144msgid "Confirm"
142−msgstr ""
145+msgstr "Bekræft"
143
146
144#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
147#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145msgid "Type or say a command"
148msgid "Type or say a command"
146−msgstr ""
149+msgstr "Skriv eller indtal en kommando"
147
150
148#: qml/Hud/Hud.qml:84
151#: qml/Hud/Hud.qml:84
149msgid "Loading. Please Wait..."
152msgid "Loading. Please Wait..."
150−msgstr ""
153+msgstr "Indlæser. Vent venligst..."
151
154
152#: qml/Hud/Hud.qml:89
155#: qml/Hud/Hud.qml:89
153msgid "Speak Now..."
156msgid "Speak Now..."
154−msgstr ""
157+msgstr "Tal nu..."
155
158
156#: qml/Hud/Hud.qml:94
159#: qml/Hud/Hud.qml:94
157msgid "Speaking..."
160msgid "Speaking..."
158−msgstr ""
161+msgstr "Taler..."
159
162
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
163#: qml/Notifications/NotificationMenuItemFactory.qml:91
161msgid "Show password"
164msgid "Show password"
162−msgstr ""
165+msgstr "Vis adgangskode"
163
166
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
167#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
168msgid "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..."
166msgstr ""
173msgstr ""
167
174
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+
168#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
204msgid "Search"
170−msgstr ""
205+msgstr "Søg"
171
206
172−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
173#, qt-format
208#, qt-format
174msgid "Please enter %1"
209msgid "Please enter %1"
175−msgstr ""
210+msgstr "Indtast venligst %1"
po/de.po+52−20
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-06 19:34+0000\n"
11+"PO-Revision-Date: 2014-07-15 13:20+0000\n"
12"Last-Translator: Phillip Sz <Unknown>\n"
12"Last-Translator: Phillip Sz <Unknown>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Im Starter sperren"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Aus dem Starter entsperren"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -83,11 +83,7 @@ msgstr "Notruf"
83
83
84#: qml/Components/Lockscreen.qml:231
84#: qml/Components/Lockscreen.qml:231
85msgid "OK"
85msgid "OK"
86−msgstr ""
86+msgstr "OK"
87−
88−#: qml/Components/PageHeader.qml:365
89−msgid "Recent searches"
90−msgstr "Zuletzt verwendete Suchbegriffe"
91
87
92#: qml/Components/PassphraseLockscreen.qml:60
88#: qml/Components/PassphraseLockscreen.qml:60
93#, qt-format
89#, qt-format
@@ -100,17 +96,17 @@ msgstr "Hallo"
100
96
101#: qml/Components/PinLockscreen.qml:198
97#: qml/Components/PinLockscreen.qml:198
102msgid "CANCEL"
98msgid "CANCEL"
103−msgstr ""
99+msgstr "ABBRECHEN"
104
100
105#: qml/Components/PinLockscreen.qml:216
101#: qml/Components/PinLockscreen.qml:216
106msgid "DONE"
102msgid "DONE"
107−msgstr ""
103+msgstr "ERLEDIGT"
108
104
109#: qml/Components/SeeMore.qml:35
105#: qml/Components/SeeMore.qml:35
110msgid "See more"
106msgid "See more"
111msgstr "Mehr ansehen"
107msgstr "Mehr ansehen"
112
108
113−#: qml/Components/SeeMore.qml:58
109+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
114msgid "See less"
110msgid "See less"
115msgstr "Weniger ansehen"
111msgstr "Weniger ansehen"
116
112
@@ -118,6 +114,10 @@ msgstr "Weniger ansehen"
118msgid "Recent"
114msgid "Recent"
119msgstr "Kürzlich"
115msgstr "Kürzlich"
120
116
117+#: qml/Dash/GenericScopeView.qml:330
118+msgid "See all"
119+msgstr ""
120+
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
122msgid "More..."
122msgid "More..."
123msgstr "Mehr …"
123msgstr "Mehr …"
@@ -126,15 +126,15 @@ msgstr "Mehr …"
126msgid "Less..."
126msgid "Less..."
127msgstr "Weniger …"
127msgstr "Weniger …"
128
128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:82
129+#: qml/Dash/Previews/PreviewRatingInput.qml:81
130msgid "Rate this"
130msgid "Rate this"
131msgstr "Bewerten"
131msgstr "Bewerten"
132
132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:128
133+#: qml/Dash/Previews/PreviewRatingInput.qml:126
134msgid "Add a review"
134msgid "Add a review"
135msgstr "Bewertung hinzufügen"
135msgstr "Bewertung hinzufügen"
136
136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:168
137+#: qml/Dash/Previews/PreviewRatingInput.qml:166
138msgid "Send"
138msgid "Send"
139msgstr "Senden"
139msgstr "Senden"
140
140
@@ -170,11 +170,43 @@ msgstr "Passwort anzeigen"
170msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
171msgstr "Bitte die PIN der SIM eingeben"
171msgstr "Bitte die PIN der SIM eingeben"
172
172
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+
173#: qml/Panel/SearchIndicator.qml:27
205#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
206msgid "Search"
175msgstr "Suchen"
207msgstr "Suchen"
176
208
177−#: qml/Shell.qml:334
209+#: qml/Shell.qml:359
178#, qt-format
210#, qt-format
179msgid "Please enter %1"
211msgid "Please enter %1"
180msgstr "Bitte geben Sie %1 ein"
212msgstr "Bitte geben Sie %1 ein"
po/el.po+57−25
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-02-26 09:58+0000\n"
11+"PO-Revision-Date: 2014-07-28 16:06+0000\n"
12−"Last-Translator: j3lc <x_nikos@yahoo.gr>\n"
12+"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-29 06:54+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Διατήρηση στον εκκινητή"
23+msgstr "Καρφίτσωμα συντόμευσης"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Απομάκρυνση από τον εκκινητή"
27+msgstr "Ξεκαρφίτσωμα συντόμευσης"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "Κλήση έκτακτης ανάγκης"
82
82
83#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
84msgid "OK"
84msgid "OK"
85−msgstr ""
85+msgstr "OK"
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Πρόσφατες αναζητήσεις"
90
86
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
@@ -99,47 +95,51 @@ msgstr "Γεια σας"
99
95
100#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
101msgid "CANCEL"
97msgid "CANCEL"
102−msgstr ""
98+msgstr "ΑΚΥΡΩΣΗ"
103
99
104#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
105msgid "DONE"
101msgid "DONE"
106−msgstr ""
102+msgstr "ΟΛΟΚΛΗΡΩΣΗ"
107
103
108#: qml/Components/SeeMore.qml:35
104#: qml/Components/SeeMore.qml:35
109msgid "See more"
105msgid "See more"
110msgstr "Περρισότερα"
106msgstr "Περρισότερα"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "Λιγότερα"
110msgstr "Λιγότερα"
115
111
116#: qml/Dash/DashApps.qml:37
112#: qml/Dash/DashApps.qml:37
117msgid "Recent"
113msgid "Recent"
118−msgstr ""
114+msgstr "Πρόσφατα"
115+
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Εμφάνιση όλων"
119
119
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122−msgstr ""
122+msgstr "Περισσότερα..."
123
123
124#: qml/Dash/Previews/PreviewActionCombo.qml:34
124#: qml/Dash/Previews/PreviewActionCombo.qml:34
125msgid "Less..."
125msgid "Less..."
126−msgstr ""
126+msgstr "Λιγότερα..."
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "Βαθμολογήστε το"
130msgstr "Βαθμολογήστε το"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "Προσθέστε την αξιολόγησή σας"
134msgstr "Προσθέστε την αξιολόγησή σας"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "Αποστολή"
138msgstr "Αποστολή"
139
139
140#: qml/Greeter/Greeter.qml:157
140#: qml/Greeter/Greeter.qml:157
141msgid "Swipe to unlock"
141msgid "Swipe to unlock"
142−msgstr ""
142+msgstr "Σύρετε για να ξεκλειδώσετε"
143
143
144#: qml/Hud/HudParametrizedActionsPage.qml:132
144#: qml/Hud/HudParametrizedActionsPage.qml:132
145msgid "Confirm"
145msgid "Confirm"
@@ -169,11 +169,43 @@ msgstr "Εμφάνιση κωδικού"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
170msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
171
171
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+
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "Αναζήτηση"
206msgstr "Αναζήτηση"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "Πληκτρολογήστε %1"
211msgstr "Πληκτρολογήστε %1"
po/en_AU.po+62−28
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2013-09-28 07:46+0000\n"
11+"PO-Revision-Date: 2014-07-27 12:14+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr ""
23+msgstr "Pin shortcut"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr ""
27+msgstr "Unpin shortcut"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -71,6 +71,8 @@ msgid ""
71"You have now mastered the edge gestures and can start using the "
71"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
72"phone<br><br>Tap on the screen to start"
73msgstr ""
73msgstr ""
74+"You have now mastered the edge gestures and can start using the "
75+"phone<br><br>Tap on the screen to start"
74
76
75#: qml/Components/Lockscreen.qml:214
77#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
78msgid "Emergency Call"
@@ -78,11 +80,7 @@ msgstr "Emergency Call"
78
80
79#: qml/Components/Lockscreen.qml:231
81#: qml/Components/Lockscreen.qml:231
80msgid "OK"
82msgid "OK"
81−msgstr ""
83+msgstr "OK"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Recent searches"
86
84
87#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
86#, qt-format
@@ -95,47 +93,51 @@ msgstr "Hello"
95
93
96#: qml/Components/PinLockscreen.qml:198
94#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
95msgid "CANCEL"
98−msgstr ""
96+msgstr "CANCEL"
99
97
100#: qml/Components/PinLockscreen.qml:216
98#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
99msgid "DONE"
102−msgstr ""
100+msgstr "DONE"
103
101
104#: qml/Components/SeeMore.qml:35
102#: qml/Components/SeeMore.qml:35
105msgid "See more"
103msgid "See more"
106−msgstr ""
104+msgstr "See more"
107
105
108−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
107msgid "See less"
110−msgstr ""
108+msgstr "See less"
111
109
112#: qml/Dash/DashApps.qml:37
110#: qml/Dash/DashApps.qml:37
113msgid "Recent"
111msgid "Recent"
114−msgstr ""
112+msgstr "Recent"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "See all"
115
117
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
119msgid "More..."
118−msgstr ""
120+msgstr "More..."
119
121
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
122#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
123msgid "Less..."
122−msgstr ""
124+msgstr "Less..."
123
125
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
127msgid "Rate this"
126msgstr "Rate this"
128msgstr "Rate this"
127
129
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
131msgid "Add a review"
130msgstr "Add a review"
132msgstr "Add a review"
131
133
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
135msgid "Send"
134msgstr "Send"
136msgstr "Send"
135
137
136#: qml/Greeter/Greeter.qml:157
138#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
139msgid "Swipe to unlock"
138−msgstr ""
140+msgstr "Swipe to unlock"
139
141
140#: qml/Hud/HudParametrizedActionsPage.qml:132
142#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
143msgid "Confirm"
@@ -159,17 +161,49 @@ msgstr "Speaking..."
159
161
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
162#: qml/Notifications/NotificationMenuItemFactory.qml:91
161msgid "Show password"
163msgid "Show password"
162−msgstr ""
164+msgstr "Show password"
163
165
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
166#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
167msgid "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"
167
201
168#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
203msgid "Search"
170msgstr "Search"
204msgstr "Search"
171
205
172−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
173#, qt-format
207#, qt-format
174msgid "Please enter %1"
208msgid "Please enter %1"
175msgstr "Please enter %1"
209msgstr "Please enter %1"
po/en_GB.po+55−23
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-03-07 13:27+0000\n"
11+"PO-Revision-Date: 2014-07-27 14:09+0000\n"
12−"Last-Translator: Andi Chandler <Unknown>\n"
12+"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Lock to Launcher"
23+msgstr "Pin shortcut"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Unlock from Launcher"
27+msgstr "Unpin shortcut"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,11 +80,7 @@ msgstr "Emergency Call"
80
80
81#: qml/Components/Lockscreen.qml:231
81#: qml/Components/Lockscreen.qml:231
82msgid "OK"
82msgid "OK"
83−msgstr ""
83+msgstr "OK"
84−
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Recent searches"
88
84
89#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
86#, qt-format
@@ -97,23 +93,27 @@ msgstr "Hello"
97
93
98#: qml/Components/PinLockscreen.qml:198
94#: qml/Components/PinLockscreen.qml:198
99msgid "CANCEL"
95msgid "CANCEL"
100−msgstr ""
96+msgstr "CANCEL"
101
97
102#: qml/Components/PinLockscreen.qml:216
98#: qml/Components/PinLockscreen.qml:216
103msgid "DONE"
99msgid "DONE"
104−msgstr ""
100+msgstr "DONE"
105
101
106#: qml/Components/SeeMore.qml:35
102#: qml/Components/SeeMore.qml:35
107msgid "See more"
103msgid "See more"
108msgstr "See more"
104msgstr "See more"
109
105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
107msgid "See less"
112msgstr "See less"
108msgstr "See less"
113
109
114#: qml/Dash/DashApps.qml:37
110#: qml/Dash/DashApps.qml:37
115msgid "Recent"
111msgid "Recent"
116−msgstr ""
112+msgstr "Recent"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "See all"
117
117
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
119msgid "More..."
@@ -123,21 +123,21 @@ msgstr "More..."
123msgid "Less..."
123msgid "Less..."
124msgstr "Less..."
124msgstr "Less..."
125
125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
127msgid "Rate this"
128msgstr "Rate this"
128msgstr "Rate this"
129
129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
131msgid "Add a review"
132msgstr "Add a review"
132msgstr "Add a review"
133
133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
135msgid "Send"
136msgstr "Send"
136msgstr "Send"
137
137
138#: qml/Greeter/Greeter.qml:157
138#: qml/Greeter/Greeter.qml:157
139msgid "Swipe to unlock"
139msgid "Swipe to unlock"
140−msgstr ""
140+msgstr "Swipe to unlock"
141
141
142#: qml/Hud/HudParametrizedActionsPage.qml:132
142#: qml/Hud/HudParametrizedActionsPage.qml:132
143msgid "Confirm"
143msgid "Confirm"
@@ -167,11 +167,43 @@ msgstr "Show password"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "Please enter SIM PIN"
168msgstr "Please enter SIM PIN"
169
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"
201+
170#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
203msgid "Search"
172msgstr "Search"
204msgstr "Search"
173
205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175#, qt-format
207#, qt-format
176msgid "Please enter %1"
208msgid "Please enter %1"
177msgstr "Please enter %1"
209msgstr "Please enter %1"
po/eo.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/es.po+50−18
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-26 03:08+0000\n"
11+"PO-Revision-Date: 2014-07-26 06:22+0000\n"
12−"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
12+"Last-Translator: Paco Molinero <paco@byasl.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-27 07:13+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18−"X-Generator: Launchpad (build 17077)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Fijar al lanzador"
23+msgstr "Anclar"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Quitar del lanzador"
27+msgstr "Desanclar"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -85,10 +85,6 @@ msgstr "Llamada de emergencia"
85msgid "OK"
85msgid "OK"
86msgstr "Aceptar"
86msgstr "Aceptar"
87
87
88−#: qml/Components/PageHeader.qml:365
89−msgid "Recent searches"
90−msgstr "Búsquedas recientes"
91−
92#: qml/Components/PassphraseLockscreen.qml:60
88#: qml/Components/PassphraseLockscreen.qml:60
93#, qt-format
89#, qt-format
94msgid "Hello %1"
90msgid "Hello %1"
@@ -110,7 +106,7 @@ msgstr "HECHO"
110msgid "See more"
106msgid "See more"
111msgstr "Ver más"
107msgstr "Ver más"
112
108
113−#: qml/Components/SeeMore.qml:58
109+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
114msgid "See less"
110msgid "See less"
115msgstr "Ver menos"
111msgstr "Ver menos"
116
112
@@ -118,6 +114,10 @@ msgstr "Ver menos"
118msgid "Recent"
114msgid "Recent"
119msgstr "Recientes"
115msgstr "Recientes"
120
116
117+#: qml/Dash/GenericScopeView.qml:330
118+msgid "See all"
119+msgstr "Ver todo"
120+
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
122msgid "More..."
122msgid "More..."
123msgstr "Más…"
123msgstr "Más…"
@@ -126,15 +126,15 @@ msgstr "Más…"
126msgid "Less..."
126msgid "Less..."
127msgstr "Menos…"
127msgstr "Menos…"
128
128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:82
129+#: qml/Dash/Previews/PreviewRatingInput.qml:81
130msgid "Rate this"
130msgid "Rate this"
131msgstr "Valorar esto"
131msgstr "Valorar esto"
132
132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:128
133+#: qml/Dash/Previews/PreviewRatingInput.qml:126
134msgid "Add a review"
134msgid "Add a review"
135msgstr "Añadir una reseña"
135msgstr "Añadir una reseña"
136
136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:168
137+#: qml/Dash/Previews/PreviewRatingInput.qml:166
138msgid "Send"
138msgid "Send"
139msgstr "Enviar"
139msgstr "Enviar"
140
140
@@ -170,11 +170,43 @@ msgstr "Mostrar contraseña"
170msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
171msgstr "Escriba el PIN de la SIM"
171msgstr "Escriba el PIN de la SIM"
172
172
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+
173#: qml/Panel/SearchIndicator.qml:27
205#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
206msgid "Search"
175msgstr "Buscar"
207msgstr "Buscar"
176
208
177−#: qml/Shell.qml:334
209+#: qml/Shell.qml:359
178#, qt-format
210#, qt-format
179msgid "Please enter %1"
211msgid "Please enter %1"
180msgstr "Introduzca %1"
212msgstr "Introduzca %1"
po/eu.po+56−24
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-03-30 12:44+0000\n"
11+"PO-Revision-Date: 2014-07-25 12:38+0000\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
13"Language-Team: Basque <eu@li.org>\n"
13"Language-Team: Basque <eu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Lotu abiarazlera"
23+msgstr "Ainguratu lasterbidea"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Askatu abiarazletik"
27+msgstr "Askatu lasterbidea"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -52,7 +52,7 @@ msgstr "Itxi"
52
52
53#: qml/Components/EdgeDemo.qml:172
53#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
54msgid "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"
56
56
57#: qml/Components/EdgeDemo.qml:199
57#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
58msgid "Left edge"
@@ -61,7 +61,7 @@ msgstr "Ezkerreko ertza"
61#: qml/Components/EdgeDemo.qml:200
61#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63msgstr ""
63msgstr ""
64−"Arrastatu ezkerretik abiarazlea erakutsi eta aplikazioak eskura berehala "
64+"Pasatu hatza ezkerretik abiarazlea erakutsi eta aplikazioak eskura berehala "
65"izateko"
65"izateko"
66
66
67#: qml/Components/EdgeDemo.qml:227
67#: qml/Components/EdgeDemo.qml:227
@@ -74,7 +74,7 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
76"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
77−"zaitezke<br><br>Ukitu pantaila hasteko"
77+"zaitezke<br><br>Sakatu pantailan hasteko"
78
78
79#: qml/Components/Lockscreen.qml:214
79#: qml/Components/Lockscreen.qml:214
80msgid "Emergency Call"
80msgid "Emergency Call"
@@ -82,11 +82,7 @@ msgstr "Larrialdi-deia"
82
82
83#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
84msgid "OK"
84msgid "OK"
85−msgstr ""
85+msgstr "Ados"
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Azken bilaketak"
90
86
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
@@ -99,17 +95,17 @@ msgstr "Kaixo"
99
95
100#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
101msgid "CANCEL"
97msgid "CANCEL"
102−msgstr ""
98+msgstr "UTZI"
103
99
104#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
105msgid "DONE"
101msgid "DONE"
106−msgstr ""
102+msgstr "EGINDA"
107
103
108#: qml/Components/SeeMore.qml:35
104#: qml/Components/SeeMore.qml:35
109msgid "See more"
105msgid "See more"
110msgstr "Ikusi gehiago"
106msgstr "Ikusi gehiago"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "Ikusi gutxiago"
110msgstr "Ikusi gutxiago"
115
111
@@ -117,6 +113,10 @@ msgstr "Ikusi gutxiago"
117msgid "Recent"
113msgid "Recent"
118msgstr "Azkenak"
114msgstr "Azkenak"
119
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Ikusi guztiak"
119+
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122msgstr "Gehiago..."
122msgstr "Gehiago..."
@@ -125,21 +125,21 @@ msgstr "Gehiago..."
125msgid "Less..."
125msgid "Less..."
126msgstr "Gutxiago..."
126msgstr "Gutxiago..."
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "Puntuatu hau"
130msgstr "Puntuatu hau"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "Gehitu kritika"
134msgstr "Gehitu kritika"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "Bidali"
138msgstr "Bidali"
139
139
140#: qml/Greeter/Greeter.qml:157
140#: qml/Greeter/Greeter.qml:157
141msgid "Swipe to unlock"
141msgid "Swipe to unlock"
142−msgstr ""
142+msgstr "Pasatu hatza desblokeatzeko"
143
143
144#: qml/Hud/HudParametrizedActionsPage.qml:132
144#: qml/Hud/HudParametrizedActionsPage.qml:132
145msgid "Confirm"
145msgid "Confirm"
@@ -169,11 +169,43 @@ msgstr "Erakutsi pasahitza"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Sartu SIMaren PINa"
170msgstr "Sartu SIMaren PINa"
171
171
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+
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "Bilatu"
206msgstr "Bilatu"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "Sartu %1"
211msgstr "Sartu %1"
po/fa.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/fi.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-14 10:23+0000\n"
11+"PO-Revision-Date: 2014-07-25 16:07+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Kiinnitä käynnistimeen"
23+msgstr "Kiinnitä pikakuvake"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Poista käynnistimestä"
27+msgstr "Poista pikakuvakkeen kiinnitys"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "Hätäpuhelu"
82msgid "OK"
82msgid "OK"
83msgstr "OK"
83msgstr "OK"
84
84
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Viimeisimmät haut"
88−
89#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
86#, qt-format
91msgid "Hello %1"
87msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "VALMIS"
107msgid "See more"
103msgid "See more"
108msgstr "Näytä lisää"
104msgstr "Näytä lisää"
109
105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
107msgid "See less"
112msgstr "Näytä vähemmän"
108msgstr "Näytä vähemmän"
113
109
@@ -115,6 +111,10 @@ msgstr "Näytä vähemmän"
115msgid "Recent"
111msgid "Recent"
116msgstr "Viimeisimmät"
112msgstr "Viimeisimmät"
117
113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "Näytä kaikki"
117+
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
119msgid "More..."
120msgstr "Lisää..."
120msgstr "Lisää..."
@@ -123,15 +123,15 @@ msgstr "Lisää..."
123msgid "Less..."
123msgid "Less..."
124msgstr "Vähemmän..."
124msgstr "Vähemmän..."
125
125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
127msgid "Rate this"
128msgstr "Arvioi tämä"
128msgstr "Arvioi tämä"
129
129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
131msgid "Add a review"
132msgstr "Lisää arvostelu"
132msgstr "Lisää arvostelu"
133
133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
135msgid "Send"
136msgstr "Lähetä"
136msgstr "Lähetä"
137
137
@@ -167,11 +167,43 @@ msgstr "Näytä salasana"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "Anna SIM-kortin PIN-koodi"
168msgstr "Anna SIM-kortin PIN-koodi"
169
169
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+
170#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
203msgid "Search"
172msgstr "Hae"
204msgstr "Hae"
173
205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175#, qt-format
207#, qt-format
176msgid "Please enter %1"
208msgid "Please enter %1"
177msgstr "Kirjoita %1"
209msgstr "Kirjoita %1"
po/fo.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Leita"
202msgstr "Leita"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/fr.po+52−20
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-08 20:45+0000\n"
11+"PO-Revision-Date: 2014-07-26 20:52+0000\n"
12−"Last-Translator: Pierre Slamich <pierre.slamich@gmail.com>\n"
12+"Last-Translator: Anne <anneonyme017@gmail.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Conserver dans le lanceur"
23+msgstr "Épingler le raccourci"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Retirer du lanceur"
27+msgstr "Détacher le raccourci"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -89,10 +89,6 @@ msgstr "Appel d'urgence"
89msgid "OK"
89msgid "OK"
90msgstr "OK"
90msgstr "OK"
91
91
92−#: qml/Components/PageHeader.qml:365
93−msgid "Recent searches"
94−msgstr "Recherches récentes"
95−
96#: qml/Components/PassphraseLockscreen.qml:60
92#: qml/Components/PassphraseLockscreen.qml:60
97#, qt-format
93#, qt-format
98msgid "Hello %1"
94msgid "Hello %1"
@@ -108,13 +104,13 @@ msgstr "ANNULER"
108
104
109#: qml/Components/PinLockscreen.qml:216
105#: qml/Components/PinLockscreen.qml:216
110msgid "DONE"
106msgid "DONE"
111−msgstr "TERMINÉ"
107+msgstr "VALIDER"
112
108
113#: qml/Components/SeeMore.qml:35
109#: qml/Components/SeeMore.qml:35
114msgid "See more"
110msgid "See more"
115msgstr "Voir plus"
111msgstr "Voir plus"
116
112
117−#: qml/Components/SeeMore.qml:58
113+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
118msgid "See less"
114msgid "See less"
119msgstr "Voir moins"
115msgstr "Voir moins"
120
116
@@ -122,6 +118,10 @@ msgstr "Voir moins"
122msgid "Recent"
118msgid "Recent"
123msgstr "Récent"
119msgstr "Récent"
124
120
121+#: qml/Dash/GenericScopeView.qml:330
122+msgid "See all"
123+msgstr "Tout voir"
124+
125#: qml/Dash/Previews/PreviewActionCombo.qml:34
125#: qml/Dash/Previews/PreviewActionCombo.qml:34
126msgid "More..."
126msgid "More..."
127msgstr "Plus..."
127msgstr "Plus..."
@@ -130,15 +130,15 @@ msgstr "Plus..."
130msgid "Less..."
130msgid "Less..."
131msgstr "Moins..."
131msgstr "Moins..."
132
132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:82
133+#: qml/Dash/Previews/PreviewRatingInput.qml:81
134msgid "Rate this"
134msgid "Rate this"
135msgstr "Evaluez ceci"
135msgstr "Evaluez ceci"
136
136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:128
137+#: qml/Dash/Previews/PreviewRatingInput.qml:126
138msgid "Add a review"
138msgid "Add a review"
139msgstr "Ajouter un avis"
139msgstr "Ajouter un avis"
140
140
141−#: qml/Dash/Previews/PreviewRatingInput.qml:168
141+#: qml/Dash/Previews/PreviewRatingInput.qml:166
142msgid "Send"
142msgid "Send"
143msgstr "Envoyer"
143msgstr "Envoyer"
144
144
@@ -172,13 +172,45 @@ msgstr "Afficher le mot de passe"
172
172
173#: qml/Notifications/NotificationMenuItemFactory.qml:103
173#: qml/Notifications/NotificationMenuItemFactory.qml:103
174msgid "Please enter SIM PIN"
174msgid "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"
176
208
177#: qml/Panel/SearchIndicator.qml:27
209#: qml/Panel/SearchIndicator.qml:27
178msgid "Search"
210msgid "Search"
179msgstr "Rechercher"
211msgstr "Rechercher"
180
212
181−#: qml/Shell.qml:334
213+#: qml/Shell.qml:359
182#, qt-format
214#, qt-format
183msgid "Please enter %1"
215msgid "Please enter %1"
184msgstr "Veuillez saisir %1"
216msgstr "Veuillez saisir %1"
po/gd.po+56−23
@@ -2,29 +2,30 @@
2# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
2# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3# This file is distributed under the same license as the unity8 package.
3# This file is distributed under the same license as the unity8 package.
4# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
4# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5−#
5+# GunChleoc <fios@foramnagaidhlig.net>, 2014.
6msgid ""
6msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-05-17 21:08+0000\n"
11+"PO-Revision-Date: 2014-07-25 22:02+0000\n"
12−"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
12+"Last-Translator: GunChleoc <Unknown>\n"
13−"Language-Team: Gaelic; Scottish <gd@li.org>\n"
13+"Language-Team: Fòram na Gàidhlig http://www.foramnagaidhlig.net\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19+"Language: gd\n"
19
20
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23+msgid "Pin shortcut"
23−msgstr "Glais ris an lòinsear"
24+msgstr "Prìnich ath-ghoirid"
24
25
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27+msgid "Unpin shortcut"
27−msgstr "Dealaich on lòinsear"
28+msgstr "Neo-phrìnich an ath-ghoirid"
28
29
29#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
31msgid "Skip intro"
@@ -86,11 +87,7 @@ msgstr "Gairm èiginn"
86
87
87#: qml/Components/Lockscreen.qml:231
88#: qml/Components/Lockscreen.qml:231
88msgid "OK"
89msgid "OK"
89−msgstr ""
90+msgstr "Ceart ma-thà"
90−
91−#: qml/Components/PageHeader.qml:365
92−msgid "Recent searches"
93−msgstr "Na lorg thu o chionn goirid"
94
91
95#: qml/Components/PassphraseLockscreen.qml:60
92#: qml/Components/PassphraseLockscreen.qml:60
96#, qt-format
93#, qt-format
@@ -103,17 +100,17 @@ msgstr "Shin thu"
103
100
104#: qml/Components/PinLockscreen.qml:198
101#: qml/Components/PinLockscreen.qml:198
105msgid "CANCEL"
102msgid "CANCEL"
106−msgstr ""
103+msgstr "SGUIR DHETH"
107
104
108#: qml/Components/PinLockscreen.qml:216
105#: qml/Components/PinLockscreen.qml:216
109msgid "DONE"
106msgid "DONE"
110−msgstr ""
107+msgstr "DÈANTA"
111
108
112#: qml/Components/SeeMore.qml:35
109#: qml/Components/SeeMore.qml:35
113msgid "See more"
110msgid "See more"
114msgstr "Seall barrachd"
111msgstr "Seall barrachd"
115
112
116−#: qml/Components/SeeMore.qml:58
113+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
117msgid "See less"
114msgid "See less"
118msgstr "Seall nas lugha"
115msgstr "Seall nas lugha"
119
116
@@ -121,6 +118,10 @@ msgstr "Seall nas lugha"
121msgid "Recent"
118msgid "Recent"
122msgstr "O chionn goirid"
119msgstr "O chionn goirid"
123
120
121+#: qml/Dash/GenericScopeView.qml:330
122+msgid "See all"
123+msgstr "Seall na h-uile"
124+
124#: qml/Dash/Previews/PreviewActionCombo.qml:34
125#: qml/Dash/Previews/PreviewActionCombo.qml:34
125msgid "More..."
126msgid "More..."
126msgstr "Barrachd..."
127msgstr "Barrachd..."
@@ -129,15 +130,15 @@ msgstr "Barrachd..."
129msgid "Less..."
130msgid "Less..."
130msgstr "Nas lugha..."
131msgstr "Nas lugha..."
131
132
132−#: qml/Dash/Previews/PreviewRatingInput.qml:82
133+#: qml/Dash/Previews/PreviewRatingInput.qml:81
133msgid "Rate this"
134msgid "Rate this"
134msgstr "Rangaich seo"
135msgstr "Rangaich seo"
135
136
136−#: qml/Dash/Previews/PreviewRatingInput.qml:128
137+#: qml/Dash/Previews/PreviewRatingInput.qml:126
137msgid "Add a review"
138msgid "Add a review"
138msgstr "Cuir lèirmheas ris"
139msgstr "Cuir lèirmheas ris"
139
140
140−#: qml/Dash/Previews/PreviewRatingInput.qml:168
141+#: qml/Dash/Previews/PreviewRatingInput.qml:166
141msgid "Send"
142msgid "Send"
142msgstr "Cuir"
143msgstr "Cuir"
143
144
@@ -173,11 +174,43 @@ msgstr "Seall am facal-faire"
173msgid "Please enter SIM PIN"
174msgid "Please enter SIM PIN"
174msgstr "Cuir a-steach SIM PIN"
175msgstr "Cuir a-steach SIM PIN"
175
176
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+
176#: qml/Panel/SearchIndicator.qml:27
209#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
210msgid "Search"
178msgstr "Lorg"
211msgstr "Lorg"
179
212
180−#: qml/Shell.qml:334
213+#: qml/Shell.qml:359
181#, qt-format
214#, qt-format
182msgid "Please enter %1"
215msgid "Please enter %1"
183msgstr "Cuir a-steach %1"
216msgstr "Cuir a-steach %1"
po/gl.po+57−23
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-07 13:26+0000\n"
11+"PO-Revision-Date: 2014-07-25 17:22+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Manter no Iniciador"
23+msgstr "Fixar o atallo"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Non manter no Iniciador"
27+msgstr "Eliminar o atallo"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -36,7 +36,7 @@ msgstr "Bordo dereito"
36
36
37#: qml/Components/EdgeDemo.qml:114
37#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
38msgid "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"
40
40
41#: qml/Components/EdgeDemo.qml:145
41#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
42msgid "Top edge"
@@ -44,7 +44,7 @@ msgstr "Bordo superior"
44
44
45#: qml/Components/EdgeDemo.qml:146
45#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
46msgid "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."
48
48
49#: qml/Components/EdgeDemo.qml:171
49#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
50msgid "Close"
@@ -52,7 +52,7 @@ msgstr "Pechar"
52
52
53#: qml/Components/EdgeDemo.qml:172
53#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
54msgid "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"
56
56
57#: qml/Components/EdgeDemo.qml:199
57#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
58msgid "Left edge"
@@ -60,11 +60,13 @@ msgstr "Bordo esquerdo"
60
60
61#: qml/Components/EdgeDemo.qml:200
61#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63+msgstr ""
63−msgstr "Esvare desde a esquerda para mostrar o iniciador de acceso rápido"
64+"Esvare o dedo desde a esquerda para mostrar o iniciador rápido dos "
65+"aplicativos"
64
66
65#: qml/Components/EdgeDemo.qml:227
67#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
68msgid "Well done"
67−msgstr "Ben feito"
69+msgstr "Ben feito!"
68
70
69#: qml/Components/EdgeDemo.qml:228
71#: qml/Components/EdgeDemo.qml:228
70msgid ""
72msgid ""
@@ -82,10 +84,6 @@ msgstr "Chamada de emerxencia"
82msgid "OK"
84msgid "OK"
83msgstr "Aceptar"
85msgstr "Aceptar"
84
86
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Buscas recentes"
88−
89#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
88#, qt-format
91msgid "Hello %1"
89msgid "Hello %1"
@@ -107,7 +105,7 @@ msgstr "FEITO"
107msgid "See more"
105msgid "See more"
108msgstr "Ver máis"
106msgstr "Ver máis"
109
107
110−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
109msgid "See less"
112msgstr "Ver menos"
110msgstr "Ver menos"
113
111
@@ -115,6 +113,10 @@ msgstr "Ver menos"
115msgid "Recent"
113msgid "Recent"
116msgstr "Recentes"
114msgstr "Recentes"
117
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Ver todo"
119+
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
121msgid "More..."
120msgstr "Máis…"
122msgstr "Máis…"
@@ -123,21 +125,21 @@ msgstr "Máis…"
123msgid "Less..."
125msgid "Less..."
124msgstr "Menos..."
126msgstr "Menos..."
125
127
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
129msgid "Rate this"
128msgstr "Valore isto"
130msgstr "Valore isto"
129
131
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
133msgid "Add a review"
132msgstr "Engadir unha opinión"
134msgstr "Engadir unha opinión"
133
135
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
137msgid "Send"
136msgstr "Enviar"
138msgstr "Enviar"
137
139
138#: qml/Greeter/Greeter.qml:157
140#: qml/Greeter/Greeter.qml:157
139msgid "Swipe to unlock"
141msgid "Swipe to unlock"
140−msgstr "Esvare para desbloquear"
142+msgstr "Esvare o dedo para desbloquear"
141
143
142#: qml/Hud/HudParametrizedActionsPage.qml:132
144#: qml/Hud/HudParametrizedActionsPage.qml:132
143msgid "Confirm"
145msgid "Confirm"
@@ -167,11 +169,43 @@ msgstr "Mostrar contrasinal"
167msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
168msgstr "Introduza o PIN da SIM"
170msgstr "Introduza o PIN da SIM"
169
171
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+
170#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
205msgid "Search"
172msgstr "Buscar"
206msgstr "Buscar"
173
207
174−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
175#, qt-format
209#, qt-format
176msgid "Please enter %1"
210msgid "Please enter %1"
177msgstr "Introduza %1"
211msgstr "Introduza %1"
po/he.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-09 07:49+0000\n"
11+"PO-Revision-Date: 2014-07-25 16:26+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "נעילה למשגר"
23+msgstr "הצמדת קיצור דרך"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "הפרדה מהמשגר"
27+msgstr "הפרדת קיצור הדרך"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "שיחת חירום"
82msgid "OK"
82msgid "OK"
83msgstr "אישור"
83msgstr "אישור"
84
84
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "חיפושים אחרונים"
88−
89#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
86#, qt-format
91msgid "Hello %1"
87msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "בוצע"
107msgid "See more"
103msgid "See more"
108msgstr "לראות עוד"
104msgstr "לראות עוד"
109
105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
107msgid "See less"
112msgstr "לראות פחות"
108msgstr "לראות פחות"
113
109
@@ -115,6 +111,10 @@ msgstr "לראות פחות"
115msgid "Recent"
111msgid "Recent"
116msgstr "בשימוש לאחרונה"
112msgstr "בשימוש לאחרונה"
117
113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "להציג הכול"
117+
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
119msgid "More..."
120msgstr "עוד…"
120msgstr "עוד…"
@@ -123,15 +123,15 @@ msgstr "עוד…"
123msgid "Less..."
123msgid "Less..."
124msgstr "פחות…"
124msgstr "פחות…"
125
125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
127msgid "Rate this"
128msgstr "דירוג היישום"
128msgstr "דירוג היישום"
129
129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
131msgid "Add a review"
132msgstr "הוספת סקירה"
132msgstr "הוספת סקירה"
133
133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
135msgid "Send"
136msgstr "שליחה"
136msgstr "שליחה"
137
137
@@ -167,11 +167,43 @@ msgstr "הצגת הססמה"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "נא להזין את קוד ה־<U+200F>SIM"
168msgstr "נא להזין את קוד ה־<U+200F>SIM"
169
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"
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+
170#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
203msgid "Search"
172msgstr "חיפוש"
204msgstr "חיפוש"
173
205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175#, qt-format
207#, qt-format
176msgid "Please enter %1"
208msgid "Please enter %1"
177msgstr "נא להזין %1"
209msgstr "נא להזין %1"
po/hi.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
13"Language-Team: Hindi <hi@li.org>\n"
13"Language-Team: Hindi <hi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr "आपातकालीन कॉल"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "पिछले खोजों"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "समीक्षा दे"
130msgstr "समीक्षा दे"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "भेजें"
134msgstr "भेजें"
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "खोजें"
202msgstr "खोजें"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/hr.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Nedavne pretrage"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Pretraživanje"
202msgstr "Pretraživanje"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/hu.po+62−28
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-01-14 23:02+0000\n"
11+"PO-Revision-Date: 2014-07-27 15:04+0000\n"
12−"Last-Translator: Kristóf Kiszel <Unknown>\n"
12+"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Indítóban tartás"
23+msgstr "Indító rögzítése"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Eltávolítás az Indítóból"
27+msgstr "Indító feloldása"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -73,6 +73,8 @@ msgid ""
73"You have now mastered the edge gestures and can start using the "
73"You have now mastered the edge gestures and can start using the "
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76+"Elsajátította a gesztusokat, és megkezdheti a telefon "
77+"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
76
78
77#: qml/Components/Lockscreen.qml:214
79#: qml/Components/Lockscreen.qml:214
78msgid "Emergency Call"
80msgid "Emergency Call"
@@ -80,11 +82,7 @@ msgstr "Vészhívás"
80
82
81#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
82msgid "OK"
84msgid "OK"
83−msgstr ""
85+msgstr "OK"
84−
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Legutóbbi keresések"
88
86
89#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
88#, qt-format
@@ -97,47 +95,51 @@ msgstr "Szia"
97
95
98#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
99msgid "CANCEL"
97msgid "CANCEL"
100−msgstr ""
98+msgstr "MÉGSE"
101
99
102#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
103msgid "DONE"
101msgid "DONE"
104−msgstr ""
102+msgstr "KÉSZ"
105
103
106#: qml/Components/SeeMore.qml:35
104#: qml/Components/SeeMore.qml:35
107msgid "See more"
105msgid "See more"
108−msgstr ""
106+msgstr "Több"
109
107
110−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
109msgid "See less"
112−msgstr ""
110+msgstr "Kevesebb"
113
111
114#: qml/Dash/DashApps.qml:37
112#: qml/Dash/DashApps.qml:37
115msgid "Recent"
113msgid "Recent"
116−msgstr ""
114+msgstr "Legutóbbi"
115+
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr "Összes megtekintése"
117
119
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
121msgid "More..."
120−msgstr ""
122+msgstr "Több…"
121
123
122#: qml/Dash/Previews/PreviewActionCombo.qml:34
124#: qml/Dash/Previews/PreviewActionCombo.qml:34
123msgid "Less..."
125msgid "Less..."
124−msgstr ""
126+msgstr "Kevesebb…"
125
127
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
129msgid "Rate this"
128msgstr "Osztályzás"
130msgstr "Osztályzás"
129
131
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
133msgid "Add a review"
132msgstr "Értékelés hozzáadása"
134msgstr "Értékelés hozzáadása"
133
135
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
137msgid "Send"
136msgstr "Küldés"
138msgstr "Küldés"
137
139
138#: qml/Greeter/Greeter.qml:157
140#: qml/Greeter/Greeter.qml:157
139msgid "Swipe to unlock"
141msgid "Swipe to unlock"
140−msgstr ""
142+msgstr "Csúsztasson a feloldáshoz"
141
143
142#: qml/Hud/HudParametrizedActionsPage.qml:132
144#: qml/Hud/HudParametrizedActionsPage.qml:132
143msgid "Confirm"
145msgid "Confirm"
@@ -165,13 +167,45 @@ msgstr "Jelszó megjelenítése"
165
167
166#: qml/Notifications/NotificationMenuItemFactory.qml:103
168#: qml/Notifications/NotificationMenuItemFactory.qml:103
167msgid "Please enter SIM PIN"
169msgid "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"
169
203
170#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
205msgid "Search"
172msgstr "Keresés"
206msgstr "Keresés"
173
207
174−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
175#, qt-format
209#, qt-format
176msgid "Please enter %1"
210msgid "Please enter %1"
177msgstr "Adja meg a következőt: %1"
211msgstr "Adja meg a következőt: %1"
po/hy.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Վերջին որոնումներ"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Որոնում"
202msgstr "Որոնում"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/id.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/is.po+75−38
@@ -1,30 +1,33 @@
1+# translation of po_unity8-is.po to icelandic
1# Icelandic translation for unity8
2# Icelandic translation for unity8
2# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3# This file is distributed under the same license as the unity8 package.
4# This file is distributed under the same license as the unity8 package.
4−# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5#
5#
6+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
7+# Sveinn í Felli <sv1@fellsnet.is>, 2014.
6msgid ""
8msgid ""
7msgstr ""
9msgstr ""
8−"Project-Id-Version: unity8\n"
10+"Project-Id-Version: po_unity8-is\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
12+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2013-09-18 16:22+0000\n"
13+"PO-Revision-Date: 2014-07-23 05:57+0000\n"
12−"Last-Translator: Andri Thorlacius <Unknown>\n"
14+"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
13−"Language-Team: Icelandic <is@li.org>\n"
15+"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
14"MIME-Version: 1.0\n"
16"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
18"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
19+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
20+"X-Generator: Launchpad (build 17131)\n"
21+"Language: is\n"
19
22
20#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
24#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
25+msgid "Pin shortcut"
23−msgstr ""
26+msgstr "Pinna flýtilykil"
24
27
25#: plugins/Unity/Launcher/launcheritem.cpp:73
28#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
29+msgid "Unpin shortcut"
27−msgstr ""
30+msgstr "Losa flýtilykil"
28
31
29#: qml/Components/EdgeDemoOverlay.qml:151
32#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
33msgid "Skip intro"
@@ -37,7 +40,7 @@ msgstr "Hægri brún"
37#: qml/Components/EdgeDemo.qml:114
40#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
41msgid "Try swiping from the right edge to unlock the phone"
39msgstr ""
42msgstr ""
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."
41
44
42#: qml/Components/EdgeDemo.qml:145
45#: qml/Components/EdgeDemo.qml:145
43msgid "Top edge"
46msgid "Top edge"
@@ -45,7 +48,7 @@ msgstr "Efri brún"
45
48
46#: qml/Components/EdgeDemo.qml:146
49#: qml/Components/EdgeDemo.qml:146
47msgid "Try swiping from the top edge to access the indicators"
50msgid "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"
49
52
50#: qml/Components/EdgeDemo.qml:171
53#: qml/Components/EdgeDemo.qml:171
51msgid "Close"
54msgid "Close"
@@ -53,7 +56,7 @@ msgstr "Loka"
53
56
54#: qml/Components/EdgeDemo.qml:172
57#: qml/Components/EdgeDemo.qml:172
55msgid "Swipe up again to close the settings screen"
58msgid "Swipe up again to close the settings screen"
56−msgstr ""
59+msgstr "Strjúktu upp til að loka stillingum"
57
60
58#: qml/Components/EdgeDemo.qml:199
61#: qml/Components/EdgeDemo.qml:199
59msgid "Left edge"
62msgid "Left edge"
@@ -61,7 +64,7 @@ msgstr "Vinstri brún"
61
64
62#: qml/Components/EdgeDemo.qml:200
65#: qml/Components/EdgeDemo.qml:200
63msgid "Swipe from the left to reveal the launcher for quick access to apps"
66msgid "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"
65
68
66#: qml/Components/EdgeDemo.qml:227
69#: qml/Components/EdgeDemo.qml:227
67msgid "Well done"
70msgid "Well done"
@@ -72,6 +75,8 @@ msgid ""
72"You have now mastered the edge gestures and can start using the "
75"You have now mastered the edge gestures and can start using the "
73"phone<br><br>Tap on the screen to start"
76"phone<br><br>Tap on the screen to start"
74msgstr ""
77msgstr ""
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"
75
80
76#: qml/Components/Lockscreen.qml:214
81#: qml/Components/Lockscreen.qml:214
77msgid "Emergency Call"
82msgid "Emergency Call"
@@ -79,11 +84,7 @@ msgstr "Neyðarsímtal"
79
84
80#: qml/Components/Lockscreen.qml:231
85#: qml/Components/Lockscreen.qml:231
81msgid "OK"
86msgid "OK"
82−msgstr ""
87+msgstr "Í lagi"
83−
84−#: qml/Components/PageHeader.qml:365
85−msgid "Recent searches"
86−msgstr "Nýlegar leitir"
87
88
88#: qml/Components/PassphraseLockscreen.qml:60
89#: qml/Components/PassphraseLockscreen.qml:60
89#, qt-format
90#, qt-format
@@ -96,47 +97,51 @@ msgstr "Hæ"
96
97
97#: qml/Components/PinLockscreen.qml:198
98#: qml/Components/PinLockscreen.qml:198
98msgid "CANCEL"
99msgid "CANCEL"
99−msgstr ""
100+msgstr "HÆTTA VIÐ"
100
101
101#: qml/Components/PinLockscreen.qml:216
102#: qml/Components/PinLockscreen.qml:216
102msgid "DONE"
103msgid "DONE"
103−msgstr ""
104+msgstr "BÚIÐ"
104
105
105#: qml/Components/SeeMore.qml:35
106#: qml/Components/SeeMore.qml:35
106msgid "See more"
107msgid "See more"
107−msgstr ""
108+msgstr "Sjá meira"
108
109
109−#: qml/Components/SeeMore.qml:58
110+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
110msgid "See less"
111msgid "See less"
111−msgstr ""
112+msgstr "Sjá minna"
112
113
113#: qml/Dash/DashApps.qml:37
114#: qml/Dash/DashApps.qml:37
114msgid "Recent"
115msgid "Recent"
116+msgstr "Nýlegt"
117+
118+#: qml/Dash/GenericScopeView.qml:330
119+msgid "See all"
115msgstr ""
120msgstr ""
116
121
117#: qml/Dash/Previews/PreviewActionCombo.qml:34
122#: qml/Dash/Previews/PreviewActionCombo.qml:34
118msgid "More..."
123msgid "More..."
119−msgstr ""
124+msgstr "Meira..."
120
125
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
126#: qml/Dash/Previews/PreviewActionCombo.qml:34
122msgid "Less..."
127msgid "Less..."
123−msgstr ""
128+msgstr "Minna..."
124
129
125−#: qml/Dash/Previews/PreviewRatingInput.qml:82
130+#: qml/Dash/Previews/PreviewRatingInput.qml:81
126msgid "Rate this"
131msgid "Rate this"
127msgstr "Gefa þessu einkunn"
132msgstr "Gefa þessu einkunn"
128
133
129−#: qml/Dash/Previews/PreviewRatingInput.qml:128
134+#: qml/Dash/Previews/PreviewRatingInput.qml:126
130msgid "Add a review"
135msgid "Add a review"
131msgstr "Gefa umsögn"
136msgstr "Gefa umsögn"
132
137
133−#: qml/Dash/Previews/PreviewRatingInput.qml:168
138+#: qml/Dash/Previews/PreviewRatingInput.qml:166
134msgid "Send"
139msgid "Send"
135msgstr "Senda"
140msgstr "Senda"
136
141
137#: qml/Greeter/Greeter.qml:157
142#: qml/Greeter/Greeter.qml:157
138msgid "Swipe to unlock"
143msgid "Swipe to unlock"
139−msgstr ""
144+msgstr "Strjúka til að aflæsa"
140
145
141#: qml/Hud/HudParametrizedActionsPage.qml:132
146#: qml/Hud/HudParametrizedActionsPage.qml:132
142msgid "Confirm"
147msgid "Confirm"
@@ -144,15 +149,15 @@ msgstr "Staðfesta"
144
149
145#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
150#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
146msgid "Type or say a command"
151msgid "Type or say a command"
147−msgstr "Skrifaðu eða segðu eitthvað"
152+msgstr "Skrifaðu eða segðu skipun"
148
153
149#: qml/Hud/Hud.qml:84
154#: qml/Hud/Hud.qml:84
150msgid "Loading. Please Wait..."
155msgid "Loading. Please Wait..."
151−msgstr "Hleð. Vinsamlegast Bíðið..."
156+msgstr "Hleð. Bíddu aðeins..."
152
157
153#: qml/Hud/Hud.qml:89
158#: qml/Hud/Hud.qml:89
154msgid "Speak Now..."
159msgid "Speak Now..."
155−msgstr "Talaðu Núna..."
160+msgstr "Tala núna..."
156
161
157#: qml/Hud/Hud.qml:94
162#: qml/Hud/Hud.qml:94
158msgid "Speaking..."
163msgid "Speaking..."
@@ -160,17 +165,49 @@ msgstr "Tala..."
160
165
161#: qml/Notifications/NotificationMenuItemFactory.qml:91
166#: qml/Notifications/NotificationMenuItemFactory.qml:91
162msgid "Show password"
167msgid "Show password"
163−msgstr ""
168+msgstr "Birta lykilorð"
164
169
165#: qml/Notifications/NotificationMenuItemFactory.qml:103
170#: qml/Notifications/NotificationMenuItemFactory.qml:103
166msgid "Please enter SIM PIN"
171msgid "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"
167msgstr ""
180msgstr ""
168
181
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+
169#: qml/Panel/SearchIndicator.qml:27
206#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
207msgid "Search"
171msgstr "Leita"
208msgstr "Leita"
172
209
173−#: qml/Shell.qml:334
210+#: qml/Shell.qml:359
174#, qt-format
211#, qt-format
175msgid "Please enter %1"
212msgid "Please enter %1"
176−msgstr ""
213+msgstr "Settu inn %1"
po/it.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-10 12:08+0000\n"
11+"PO-Revision-Date: 2014-07-25 16:09+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Blocca nel Launcher"
23+msgstr "Blocca scorciatoia"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Sblocca dal Launcher"
27+msgstr "Sblocca scorciatoia"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Chiamata di emergenza"
87msgid "OK"
87msgid "OK"
88msgstr "OK"
88msgstr "OK"
89
89
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Ricerche recenti"
93−
94#: qml/Components/PassphraseLockscreen.qml:60
90#: qml/Components/PassphraseLockscreen.qml:60
95#, qt-format
91#, qt-format
96msgid "Hello %1"
92msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr "Fatto"
112msgid "See more"
108msgid "See more"
113msgstr "Mostra di più"
109msgstr "Mostra di più"
114
110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116msgid "See less"
112msgid "See less"
117msgstr "Mostra meno"
113msgstr "Mostra meno"
118
114
@@ -120,6 +116,10 @@ msgstr "Mostra meno"
120msgid "Recent"
116msgid "Recent"
121msgstr "Recenti"
117msgstr "Recenti"
122
118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr "Mostra tutto"
122+
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124msgid "More..."
124msgid "More..."
125msgstr "Altro..."
125msgstr "Altro..."
@@ -128,15 +128,15 @@ msgstr "Altro..."
128msgid "Less..."
128msgid "Less..."
129msgstr "Meno..."
129msgstr "Meno..."
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132msgid "Rate this"
132msgid "Rate this"
133msgstr "Valuta"
133msgstr "Valuta"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136msgid "Add a review"
136msgid "Add a review"
137msgstr "Aggiungi una recensione"
137msgstr "Aggiungi una recensione"
138
138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140msgid "Send"
140msgid "Send"
141msgstr "Invia"
141msgstr "Invia"
142
142
@@ -172,11 +172,43 @@ msgstr "Mostra password"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr "Inserire il codice PIN"
173msgstr "Inserire il codice PIN"
174
174
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+
175#: qml/Panel/SearchIndicator.qml:27
207#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
208msgid "Search"
177msgstr "Cerca"
209msgstr "Cerca"
178
210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180#, qt-format
212#, qt-format
181msgid "Please enter %1"
213msgid "Please enter %1"
182msgstr "Inserire %1"
214msgstr "Inserire %1"
po/ja.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-18 07:01+0000\n"
11"PO-Revision-Date: 2014-01-18 07:01+0000\n"
12"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n"
12"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Launcherに登録"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Launcherへの登録を解除"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "最近の検索"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "送信"
134msgstr "送信"
135
135
@@ -165,11 +165,43 @@ msgstr "パスワードを表示"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "検索"
202msgstr "検索"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/km.po+52−20
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-05-19 01:42+0000\n"
11+"PO-Revision-Date: 2014-07-16 01:37+0000\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ចាក់​សោ​​ទៅ​កម្មវិធី​ចាប់ផ្ដើម"
23+msgstr "ភ្ជាប់​ផ្លូវកាត់"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ដោះសោ​ពី​កម្មវិធី​ចាប់ផ្ដើម"
27+msgstr "មិន​ភ្ជាប់ផ្លូវកាត់"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "ការ​ហៅ​ពេល​អាសន្ន"
82
82
83#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
84msgid "OK"
84msgid "OK"
85−msgstr ""
85+msgstr "យល់ព្រម"
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "ការ​ស្វែងរក​ថ្មី"
90
86
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
@@ -99,17 +95,17 @@ msgstr "សួស្តី"
99
95
100#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
101msgid "CANCEL"
97msgid "CANCEL"
102−msgstr ""
98+msgstr "បោះបង់"
103
99
104#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
105msgid "DONE"
101msgid "DONE"
106−msgstr ""
102+msgstr "រួចរាល់"
107
103
108#: qml/Components/SeeMore.qml:35
104#: qml/Components/SeeMore.qml:35
109msgid "See more"
105msgid "See more"
110msgstr "មើល​ច្រើន​ទៀត"
106msgstr "មើល​ច្រើន​ទៀត"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "មើល​តិច​ជាង"
110msgstr "មើល​តិច​ជាង"
115
111
@@ -117,6 +113,10 @@ msgstr "មើល​តិច​ជាង"
117msgid "Recent"
113msgid "Recent"
118msgstr "បច្ចុប្បន្ន"
114msgstr "បច្ចុប្បន្ន"
119
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122msgstr "ច្រើនជាង​..."
122msgstr "ច្រើនជាង​..."
@@ -125,15 +125,15 @@ msgstr "ច្រើនជាង​..."
125msgid "Less..."
125msgid "Less..."
126msgstr "តិច​ជាង..."
126msgstr "តិច​ជាង..."
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "វាយតម្លៃ​វា"
130msgstr "វាយតម្លៃ​វា"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "បន្ថែម​ការ​ពិនិត្យ"
134msgstr "បន្ថែម​ការ​ពិនិត្យ"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "ផ្ញើ"
138msgstr "ផ្ញើ"
139
139
@@ -169,11 +169,43 @@ msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
170msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
171
171
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+
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "ស្វែង​រក"
206msgstr "ស្វែង​រក"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "សូម​បញ្ចូល %1"
211msgstr "សូម​បញ្ចូល %1"
po/kn.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "ಹುಡುಕು"
202msgstr "ಹುಡುಕು"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/ko.po+81−47
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2013-10-10 07:04+0000\n"
11+"PO-Revision-Date: 2014-07-17 03:56+0000\n"
12−"Last-Translator: Kim Boram <boramism@gmail.com>\n"
12+"Last-Translator: MinSik CHO <Unknown>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr ""
23+msgstr "바로가기를 고정하기"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr ""
27+msgstr "바로가기를 고정 해제하기"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -36,140 +36,174 @@ msgstr "오른쪽 끝"
36
36
37#: qml/Components/EdgeDemo.qml:114
37#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
38msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "휴대 전화를 잠금 해제하려면 오른쪽에서부터 끌어보세요."
40
40
41#: qml/Components/EdgeDemo.qml:145
41#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
42msgid "Top edge"
43−msgstr ""
43+msgstr "윗쪽 끝"
44
44
45#: qml/Components/EdgeDemo.qml:146
45#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
46msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
47+msgstr "알림을 보려면 위쪽에서 끌어보세요."
48
48
49#: qml/Components/EdgeDemo.qml:171
49#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
50msgid "Close"
51−msgstr ""
51+msgstr "닫기"
52
52
53#: qml/Components/EdgeDemo.qml:172
53#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
54msgid "Swipe up again to close the settings screen"
55−msgstr ""
55+msgstr "환경설정 창을 닫으려면 위로 다시 끌어보세요."
56
56
57#: qml/Components/EdgeDemo.qml:199
57#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
58msgid "Left edge"
59−msgstr ""
59+msgstr "왼쪽 끝"
60
60
61#: qml/Components/EdgeDemo.qml:200
61#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr ""
63+msgstr "애플리케이션을 빠르게 열기 위해 런처를 보려면 왼쪽에서 끌어보세요."
64
64
65#: qml/Components/EdgeDemo.qml:227
65#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
66msgid "Well done"
67−msgstr ""
67+msgstr "잘하셨습니다."
68
68
69#: qml/Components/EdgeDemo.qml:228
69#: qml/Components/EdgeDemo.qml:228
70msgid ""
70msgid ""
71"You have now mastered the edge gestures and can start using the "
71"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
72"phone<br><br>Tap on the screen to start"
73msgstr ""
73msgstr ""
74+"여러분은 끝에서 끌어오기 제스쳐를 완벽히 익히셨기 때문에 휴대 전화를 사용하기 시작할 수 있습니다. <br><br> 스크린을 터치해서 "
75+"시작하세요."
74
76
75#: qml/Components/Lockscreen.qml:214
77#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
78msgid "Emergency Call"
77−msgstr ""
79+msgstr "긴급 통화"
78
80
79#: qml/Components/Lockscreen.qml:231
81#: qml/Components/Lockscreen.qml:231
80msgid "OK"
82msgid "OK"
81−msgstr ""
83+msgstr "확인"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "최근 검색"
86
84
87#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
86#, qt-format
89msgid "Hello %1"
87msgid "Hello %1"
90−msgstr ""
88+msgstr "안녕하세요 %1"
91
89
92#: qml/Components/PassphraseLockscreen.qml:60
90#: qml/Components/PassphraseLockscreen.qml:60
93msgid "Hello"
91msgid "Hello"
94−msgstr ""
92+msgstr "안녕하세요"
95
93
96#: qml/Components/PinLockscreen.qml:198
94#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
95msgid "CANCEL"
98−msgstr ""
96+msgstr "취소"
99
97
100#: qml/Components/PinLockscreen.qml:216
98#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
99msgid "DONE"
102−msgstr ""
100+msgstr "완료"
103
101
104#: qml/Components/SeeMore.qml:35
102#: qml/Components/SeeMore.qml:35
105msgid "See more"
103msgid "See more"
106−msgstr ""
104+msgstr "더 보기"
107
105
108−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
107msgid "See less"
110−msgstr ""
108+msgstr "간단히 표시하기"
111
109
112#: qml/Dash/DashApps.qml:37
110#: qml/Dash/DashApps.qml:37
113msgid "Recent"
111msgid "Recent"
112+msgstr "최근"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
114msgstr ""
116msgstr ""
115
117
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
119msgid "More..."
118−msgstr ""
120+msgstr "더 보기..."
119
121
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
122#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
123msgid "Less..."
122−msgstr ""
124+msgstr "간단하게..."
123
125
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
127msgid "Rate this"
126−msgstr ""
128+msgstr "이 애플리케이션 평가하기"
127
129
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
131msgid "Add a review"
130−msgstr ""
132+msgstr "평가 제출하기"
131
133
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
135msgid "Send"
134−msgstr ""
136+msgstr "보내기"
135
137
136#: qml/Greeter/Greeter.qml:157
138#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
139msgid "Swipe to unlock"
138−msgstr ""
140+msgstr "휴대전화를 잠금 해제하려면 움직이세요."
139
141
140#: qml/Hud/HudParametrizedActionsPage.qml:132
142#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
143msgid "Confirm"
142−msgstr ""
144+msgstr "확인"
143
145
144#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
146#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145msgid "Type or say a command"
147msgid "Type or say a command"
146−msgstr ""
148+msgstr "명령을 입력하거나 말하세요."
147
149
148#: qml/Hud/Hud.qml:84
150#: qml/Hud/Hud.qml:84
149msgid "Loading. Please Wait..."
151msgid "Loading. Please Wait..."
150−msgstr ""
152+msgstr "준비 중.. 잠시만 기다려 주세요..."
151
153
152#: qml/Hud/Hud.qml:89
154#: qml/Hud/Hud.qml:89
153msgid "Speak Now..."
155msgid "Speak Now..."
154−msgstr ""
156+msgstr "지금 말하세요..."
155
157
156#: qml/Hud/Hud.qml:94
158#: qml/Hud/Hud.qml:94
157msgid "Speaking..."
159msgid "Speaking..."
158−msgstr ""
160+msgstr "말하는 중..."
159
161
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
162#: qml/Notifications/NotificationMenuItemFactory.qml:91
161msgid "Show password"
163msgid "Show password"
162−msgstr ""
164+msgstr "비밀 번호 보기"
163
165
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
166#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
167msgid "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"
166msgstr ""
176msgstr ""
167
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+
168#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
203msgid "Search"
170msgstr "검색"
204msgstr "검색"
171
205
172−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
173#, qt-format
207#, qt-format
174msgid "Please enter %1"
208msgid "Please enter %1"
175−msgstr ""
209+msgstr "%1 를 입력해주세요."
po/ky.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Соңку издөөлөр"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Издөө"
202msgstr "Издөө"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/lo.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "ສົ່ງ"
134msgstr "ສົ່ງ"
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "ຊອກຫາ"
202msgstr "ຊອກຫາ"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "ກະລູນາປ້ອນ %1"
207msgstr "ກະລູນາປ້ອນ %1"
po/lt.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Palikti mygtukų juostoje"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Nelaikyti mygtukų juostoje"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -83,10 +83,6 @@ msgstr "Pagalbos skambutis"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "Paskiausios paieškos"
89−
90#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
91#, qt-format
87#, qt-format
92msgid "Hello %1"
88msgid "Hello %1"
@@ -108,7 +104,7 @@ msgstr ""
108msgid "See more"
104msgid "See more"
109msgstr ""
105msgstr ""
110
106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112msgid "See less"
108msgid "See less"
113msgstr ""
109msgstr ""
114
110
@@ -116,6 +112,10 @@ msgstr ""
116msgid "Recent"
112msgid "Recent"
117msgstr "Paskiausieji"
113msgstr "Paskiausieji"
118
114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120msgid "More..."
120msgid "More..."
121msgstr "Daugiau..."
121msgstr "Daugiau..."
@@ -124,15 +124,15 @@ msgstr "Daugiau..."
124msgid "Less..."
124msgid "Less..."
125msgstr "Mažiau..."
125msgstr "Mažiau..."
126
126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128msgid "Rate this"
128msgid "Rate this"
129msgstr "Įvertinkite tai"
129msgstr "Įvertinkite tai"
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132msgid "Add a review"
132msgid "Add a review"
133msgstr "Pridėkite apžvalgą"
133msgstr "Pridėkite apžvalgą"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136msgid "Send"
136msgid "Send"
137msgstr "Siųsti"
137msgstr "Siųsti"
138
138
@@ -168,11 +168,43 @@ msgstr "Rodyti slaptažodį"
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr "Įveskite SIM kortelės PIN kodą"
169msgstr "Įveskite SIM kortelės PIN kodą"
170
170
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+
171#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
204msgid "Search"
173msgstr "Paieška"
205msgstr "Paieška"
174
206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176#, qt-format
208#, qt-format
177msgid "Please enter %1"
209msgid "Please enter %1"
178msgstr "Prašom įvesti %1"
210msgstr "Prašom įvesti %1"
po/lv.po+53−21
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-05-31 14:54+0000\n"
11+"PO-Revision-Date: 2014-07-26 16:21+0000\n"
12−"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
12+"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Pieslēgt palaidējam"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Atslēgt no palaidēja"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -78,11 +78,7 @@ msgstr "Neatliekamās Palīdzības zvans"
78
78
79#: qml/Components/Lockscreen.qml:231
79#: qml/Components/Lockscreen.qml:231
80msgid "OK"
80msgid "OK"
81−msgstr ""
81+msgstr "LABI"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Nesen veiktās meklēšanas"
86
82
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
@@ -95,17 +91,17 @@ msgstr "Sveiki"
95
91
96#: qml/Components/PinLockscreen.qml:198
92#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
93msgid "CANCEL"
98−msgstr ""
94+msgstr "ATCELT"
99
95
100#: qml/Components/PinLockscreen.qml:216
96#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
97msgid "DONE"
102−msgstr ""
98+msgstr "IZDARĪTS"
103
99
104#: qml/Components/SeeMore.qml:35
100#: qml/Components/SeeMore.qml:35
105msgid "See more"
101msgid "See more"
106msgstr "Redzēt vairāk"
102msgstr "Redzēt vairāk"
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr "Redzēt mazāk"
106msgstr "Redzēt mazāk"
111
107
@@ -113,6 +109,10 @@ msgstr "Redzēt mazāk"
113msgid "Recent"
109msgid "Recent"
114msgstr "Nesens"
110msgstr "Nesens"
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "Skatīt visus"
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr "Vairāk..."
118msgstr "Vairāk..."
@@ -121,15 +121,15 @@ msgstr "Vairāk..."
121msgid "Less..."
121msgid "Less..."
122msgstr "Mazāk..."
122msgstr "Mazāk..."
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "Novērtēt šo"
126msgstr "Novērtēt šo"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "Komentēt"
130msgstr "Komentēt"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "Sūtīt"
134msgstr "Sūtīt"
135
135
@@ -165,11 +165,43 @@ msgstr "Rādīt paroli"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr "Lūdzu ievadiet SIM PIN"
166msgstr "Lūdzu ievadiet SIM PIN"
167
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 "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+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Meklēt"
202msgstr "Meklēt"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "Lūdzu ievadiet %1"
207msgstr "Lūdzu ievadiet %1"
po/ml.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
12−"Last-Translator: Stym alfaZ <Unknown>\n"
12+"Last-Translator: ST Alfas <Unknown>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "വിക്ഷേപികയില്‍ സ്ഥിരപ്പെടുത്തുക"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "വിക്ഷേപികാ സ്ഥിരപ്പെടുത്തല്‍ ഒഴിവാക്കുക"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "അടിയന്തിര വിളി"
82msgid "OK"
82msgid "OK"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "സമീപകാല തിരയലുകള്‍"
88−
89#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
86#, qt-format
91msgid "Hello %1"
87msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr ""
107msgid "See more"
103msgid "See more"
108msgstr ""
104msgstr ""
109
105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
107msgid "See less"
112msgstr ""
108msgstr ""
113
109
@@ -115,6 +111,10 @@ msgstr ""
115msgid "Recent"
111msgid "Recent"
116msgstr ""
112msgstr ""
117
113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr ""
117+
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
119msgid "More..."
120msgstr ""
120msgstr ""
@@ -123,15 +123,15 @@ msgstr ""
123msgid "Less..."
123msgid "Less..."
124msgstr ""
124msgstr ""
125
125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
127msgid "Rate this"
128msgstr "ഇത് അവലോകനം ചെയ്യുക"
128msgstr "ഇത് അവലോകനം ചെയ്യുക"
129
129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
131msgid "Add a review"
132msgstr "ഒരു അവലോകനം ചേര്‍ക്കുക"
132msgstr "ഒരു അവലോകനം ചേര്‍ക്കുക"
133
133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
135msgid "Send"
136msgstr "അയയ്‌ക്കുക"
136msgstr "അയയ്‌ക്കുക"
137
137
@@ -167,11 +167,43 @@ msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr ""
168msgstr ""
169
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"
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+
170#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
203msgid "Search"
172msgstr "തിരയുക"
204msgstr "തിരയുക"
173
205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175#, qt-format
207#, qt-format
176msgid "Please enter %1"
208msgid "Please enter %1"
177msgstr "ദയവായി %1 നല്‍കുക"
209msgstr "ദയവായി %1 നല്‍കുക"
po/mr.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
13"Language-Team: Marathi <mr@li.org>\n"
13"Language-Team: Marathi <mr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/ms.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
12"Last-Translator: abuyop <Unknown>\n"
12"Last-Translator: abuyop <Unknown>\n"
13"Language-Team: Malay <ms@li.org>\n"
13"Language-Team: Malay <ms@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Kunci ke Pelancar"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Tanggalkan dari Pelancar"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "panggilan Kecemasan"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Gelintar baru-baru ini"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "Kadar ini"
126msgstr "Kadar ini"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "Tambah ulasan"
130msgstr "Tambah ulasan"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "Hantar"
134msgstr "Hantar"
135
135
@@ -165,11 +165,43 @@ msgstr "Tunjuk kata laluan"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Gelintar"
202msgstr "Gelintar"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "Sila masukkan %1"
207msgstr "Sila masukkan %1"
po/my.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
13"Language-Team: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Launcher တွင်ထားမည်"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Launcher မှဖြုတ်မည်"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "အရေးပေါ်ခေါ်မည်"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
126msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "ပို့မည်"
134msgstr "ပို့မည်"
135
135
@@ -165,11 +165,43 @@ msgstr "စကားဝှက်ကိုပြ"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "ရှာဖွေ"
202msgstr "ရှာဖွေ"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "%1ကိုရိုက်ထည့်ပါ"
207msgstr "%1ကိုရိုက်ထည့်ပါ"
po/nb.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-11 06:36+0000\n"
11+"PO-Revision-Date: 2014-07-26 12:05+0000\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Lås til oppstarter"
23+msgstr "Fest snarvei"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Lås opp fra oppstarter"
27+msgstr "Fjern snarvei"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "Nødanrop"
82msgid "OK"
82msgid "OK"
83msgstr "OK"
83msgstr "OK"
84
84
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "Nylige søk"
88−
89#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
86#, qt-format
91msgid "Hello %1"
87msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "FERDIG"
107msgid "See more"
103msgid "See more"
108msgstr "Vis mer"
104msgstr "Vis mer"
109
105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
107msgid "See less"
112msgstr "Vis mindre"
108msgstr "Vis mindre"
113
109
@@ -115,6 +111,10 @@ msgstr "Vis mindre"
115msgid "Recent"
111msgid "Recent"
116msgstr "Nylig"
112msgstr "Nylig"
117
113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "Vis alt"
117+
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
119msgid "More..."
120msgstr "Mer …"
120msgstr "Mer …"
@@ -123,15 +123,15 @@ msgstr "Mer …"
123msgid "Less..."
123msgid "Less..."
124msgstr "Mindre …"
124msgstr "Mindre …"
125
125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
127msgid "Rate this"
128msgstr "Vurder dette"
128msgstr "Vurder dette"
129
129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
131msgid "Add a review"
132msgstr "Skriv en anmeldelse"
132msgstr "Skriv en anmeldelse"
133
133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
135msgid "Send"
136msgstr "Send"
136msgstr "Send"
137
137
@@ -167,11 +167,43 @@ msgstr "Vis passord"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "Skriv inn PIN-koden til SIM-kortet"
168msgstr "Skriv inn PIN-koden til SIM-kortet"
169
169
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+
170#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
203msgid "Search"
172msgstr "Søk"
204msgstr "Søk"
173
205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175#, qt-format
207#, qt-format
176msgid "Please enter %1"
208msgid "Please enter %1"
177msgstr "Skriv inn %1"
209msgstr "Skriv inn %1"
po/nl.po+64−30
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-01-15 16:42+0000\n"
11+"PO-Revision-Date: 2014-07-27 19:12+0000\n"
12−"Last-Translator: Hannie Dumoleyn <Unknown>\n"
12+"Last-Translator: rob <linuxned@gmail.com>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-28 06:44+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "In Starter vastzetten"
23+msgstr "Snelkoppeling vastzetten"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Uit Starter verwijderen"
27+msgstr "Snelkoppeling losmaken"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -36,7 +36,7 @@ msgstr "Rechterrand"
36
36
37#: qml/Components/EdgeDemo.qml:114
37#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
38msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "Veeg vanuit de rechterrand om het scherm te ontgrendelen"
40
40
41#: qml/Components/EdgeDemo.qml:145
41#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
42msgid "Top edge"
@@ -44,7 +44,7 @@ msgstr "Bovenrand"
44
44
45#: qml/Components/EdgeDemo.qml:146
45#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
46msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
47+msgstr "Veeg vanuit de bovenrand om de indicatoren te bekijken"
48
48
49#: qml/Components/EdgeDemo.qml:171
49#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
50msgid "Close"
@@ -71,6 +71,8 @@ msgid ""
71"You have now mastered the edge gestures and can start using the "
71"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
72"phone<br><br>Tap on the screen to start"
73msgstr ""
73msgstr ""
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"
74
76
75#: qml/Components/Lockscreen.qml:214
77#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
78msgid "Emergency Call"
@@ -78,11 +80,7 @@ msgstr "Noodoproep"
78
80
79#: qml/Components/Lockscreen.qml:231
81#: qml/Components/Lockscreen.qml:231
80msgid "OK"
82msgid "OK"
81−msgstr ""
83+msgstr "Ok"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Recente zoekopdrachten"
86
84
87#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
86#, qt-format
@@ -95,47 +93,51 @@ msgstr "Hallo"
95
93
96#: qml/Components/PinLockscreen.qml:198
94#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
95msgid "CANCEL"
98−msgstr ""
96+msgstr "ANNULEREN"
99
97
100#: qml/Components/PinLockscreen.qml:216
98#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
99msgid "DONE"
102−msgstr ""
100+msgstr "KLAAR"
103
101
104#: qml/Components/SeeMore.qml:35
102#: qml/Components/SeeMore.qml:35
105msgid "See more"
103msgid "See more"
106−msgstr ""
104+msgstr "Meer zien"
107
105
108−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
107msgid "See less"
110−msgstr ""
108+msgstr "Minder zien"
111
109
112#: qml/Dash/DashApps.qml:37
110#: qml/Dash/DashApps.qml:37
113msgid "Recent"
111msgid "Recent"
114−msgstr ""
112+msgstr "Recent"
113+
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "Alles zien"
115
117
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
119msgid "More..."
118−msgstr ""
120+msgstr "Meer…"
119
121
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
122#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
123msgid "Less..."
122−msgstr ""
124+msgstr "Minder…"
123
125
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
127msgid "Rate this"
126msgstr "Beoordeel dit"
128msgstr "Beoordeel dit"
127
129
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
131msgid "Add a review"
130msgstr "Voeg recensie toe"
132msgstr "Voeg recensie toe"
131
133
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
135msgid "Send"
134msgstr "Versturen"
136msgstr "Versturen"
135
137
136#: qml/Greeter/Greeter.qml:157
138#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
139msgid "Swipe to unlock"
138−msgstr ""
140+msgstr "Veeg om te ontgrendelen"
139
141
140#: qml/Hud/HudParametrizedActionsPage.qml:132
142#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
143msgid "Confirm"
@@ -163,13 +165,45 @@ msgstr "Wachtwoord tonen"
163
165
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
166#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
167msgid "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"
167
201
168#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
203msgid "Search"
170msgstr "Zoeken"
204msgstr "Zoeken"
171
205
172−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
173#, qt-format
207#, qt-format
174msgid "Please enter %1"
208msgid "Please enter %1"
175msgstr "Voer %1 in"
209msgstr "Voer %1 in"
po/pl.po+52−20
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-05-27 15:20+0000\n"
11+"PO-Revision-Date: 2014-07-19 14:10+0000\n"
12"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
12"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Dodaj do panelu uruchamiania"
23+msgstr "Przypnij skrót"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Usuń z panelu uruchamiania"
27+msgstr "Odepnij skrót"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "Telefon ratunkowy"
82
82
83#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
84msgid "OK"
84msgid "OK"
85−msgstr ""
85+msgstr "OK"
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Ostatnie wyszukiwania"
90
86
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
@@ -99,17 +95,17 @@ msgstr "Witaj"
99
95
100#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
101msgid "CANCEL"
97msgid "CANCEL"
102−msgstr ""
98+msgstr "ANULUJ"
103
99
104#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
105msgid "DONE"
101msgid "DONE"
106−msgstr ""
102+msgstr "ZROBIONE"
107
103
108#: qml/Components/SeeMore.qml:35
104#: qml/Components/SeeMore.qml:35
109msgid "See more"
105msgid "See more"
110msgstr "Zobacz więcej"
106msgstr "Zobacz więcej"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "Zobacz mniej"
110msgstr "Zobacz mniej"
115
111
@@ -117,6 +113,10 @@ msgstr "Zobacz mniej"
117msgid "Recent"
113msgid "Recent"
118msgstr "Ostatnio używane"
114msgstr "Ostatnio używane"
119
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122msgstr "Więcej..."
122msgstr "Więcej..."
@@ -125,15 +125,15 @@ msgstr "Więcej..."
125msgid "Less..."
125msgid "Less..."
126msgstr "Mniej..."
126msgstr "Mniej..."
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "Oceń to"
130msgstr "Oceń to"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "Dodaj recenzję"
134msgstr "Dodaj recenzję"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "Wyślij"
138msgstr "Wyślij"
139
139
@@ -169,11 +169,43 @@ msgstr "Wyświetl hasło"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Wprowadź kod PIN karty SIM"
170msgstr "Wprowadź kod PIN karty SIM"
171
171
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+
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "Szukaj"
206msgstr "Szukaj"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "Wprowadź %1"
211msgstr "Wprowadź %1"
po/pt.po+86−51
@@ -7,169 +7,204 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-01-14 19:18+0000\n"
11+"PO-Revision-Date: 2014-07-25 12:04+0000\n"
12−"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12+"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr ""
23+msgstr "Afixar atalho"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr ""
27+msgstr "Remover atalho"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
31−msgstr ""
31+msgstr "Saltar introdução"
32
32
33#: qml/Components/EdgeDemo.qml:113
33#: qml/Components/EdgeDemo.qml:113
34msgid "Right edge"
34msgid "Right edge"
35−msgstr ""
35+msgstr "Limite direito"
36
36
37#: qml/Components/EdgeDemo.qml:114
37#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
38msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "Tente deslizar do limite direito para desbloquear o telefone"
40
40
41#: qml/Components/EdgeDemo.qml:145
41#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
42msgid "Top edge"
43−msgstr ""
43+msgstr "Limite superior"
44
44
45#: qml/Components/EdgeDemo.qml:146
45#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
46msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
47+msgstr "Tente deslizar do topo para aceder aos indicadores"
48
48
49#: qml/Components/EdgeDemo.qml:171
49#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
50msgid "Close"
51−msgstr ""
51+msgstr "Fechar"
52
52
53#: qml/Components/EdgeDemo.qml:172
53#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
54msgid "Swipe up again to close the settings screen"
55−msgstr ""
55+msgstr "Deslize de novo para cima para fechar o ecrã de definições"
56
56
57#: qml/Components/EdgeDemo.qml:199
57#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
58msgid "Left edge"
59−msgstr ""
59+msgstr "Limite esquerdo"
60
60
61#: qml/Components/EdgeDemo.qml:200
61#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63msgstr ""
63msgstr ""
64+"Deslize da esquerda para mostrar o lançador para acesso rápido às aplicações"
64
65
65#: qml/Components/EdgeDemo.qml:227
66#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
67msgid "Well done"
67−msgstr ""
68+msgstr "Muito bem"
68
69
69#: qml/Components/EdgeDemo.qml:228
70#: qml/Components/EdgeDemo.qml:228
70msgid ""
71msgid ""
71"You have now mastered the edge gestures and can start using the "
72"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
73msgstr ""
74msgstr ""
75+"Já domina os gestos dos limites e pode começar a usar o "
76+"telefone<br><br>Toque no ecrã para começar"
74
77
75#: qml/Components/Lockscreen.qml:214
78#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
79msgid "Emergency Call"
77−msgstr ""
80+msgstr "Chamada de emergência"
78
81
79#: qml/Components/Lockscreen.qml:231
82#: qml/Components/Lockscreen.qml:231
80msgid "OK"
83msgid "OK"
81−msgstr ""
84+msgstr "OK"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86
85
87#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
87#, qt-format
89msgid "Hello %1"
88msgid "Hello %1"
90−msgstr ""
89+msgstr "Olá %1"
91
90
92#: qml/Components/PassphraseLockscreen.qml:60
91#: qml/Components/PassphraseLockscreen.qml:60
93msgid "Hello"
92msgid "Hello"
94−msgstr ""
93+msgstr "Olá"
95
94
96#: qml/Components/PinLockscreen.qml:198
95#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
96msgid "CANCEL"
98−msgstr ""
97+msgstr "CANCELAR"
99
98
100#: qml/Components/PinLockscreen.qml:216
99#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
100msgid "DONE"
102−msgstr ""
101+msgstr "FEITO"
103
102
104#: qml/Components/SeeMore.qml:35
103#: qml/Components/SeeMore.qml:35
105msgid "See more"
104msgid "See more"
106−msgstr ""
105+msgstr "Ver mais"
107
106
108−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
108msgid "See less"
110−msgstr ""
109+msgstr "Ver menos"
111
110
112#: qml/Dash/DashApps.qml:37
111#: qml/Dash/DashApps.qml:37
113msgid "Recent"
112msgid "Recent"
114−msgstr ""
113+msgstr "Recentes"
114+
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr "Ver todos"
115
118
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
120msgid "More..."
118−msgstr ""
121+msgstr "Mais..."
119
122
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
124msgid "Less..."
122−msgstr ""
125+msgstr "Menos..."
123
126
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
128msgid "Rate this"
126−msgstr ""
129+msgstr "Classifique isto"
127
130
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
132msgid "Add a review"
130−msgstr ""
133+msgstr "Adicione uma crítica"
131
134
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
136msgid "Send"
134−msgstr ""
137+msgstr "Enviar"
135
138
136#: qml/Greeter/Greeter.qml:157
139#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
140msgid "Swipe to unlock"
138−msgstr ""
141+msgstr "Deslize para desbloquear"
139
142
140#: qml/Hud/HudParametrizedActionsPage.qml:132
143#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
144msgid "Confirm"
142−msgstr ""
145+msgstr "Confirmar"
143
146
144#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
147#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145msgid "Type or say a command"
148msgid "Type or say a command"
146−msgstr ""
149+msgstr "Digite ou diga um comando"
147
150
148#: qml/Hud/Hud.qml:84
151#: qml/Hud/Hud.qml:84
149msgid "Loading. Please Wait..."
152msgid "Loading. Please Wait..."
150−msgstr ""
153+msgstr "A carregar. Aguarde por favor..."
151
154
152#: qml/Hud/Hud.qml:89
155#: qml/Hud/Hud.qml:89
153msgid "Speak Now..."
156msgid "Speak Now..."
154−msgstr ""
157+msgstr "Fale agora..."
155
158
156#: qml/Hud/Hud.qml:94
159#: qml/Hud/Hud.qml:94
157msgid "Speaking..."
160msgid "Speaking..."
158−msgstr ""
161+msgstr "A falar..."
159
162
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
163#: qml/Notifications/NotificationMenuItemFactory.qml:91
161msgid "Show password"
164msgid "Show password"
162−msgstr ""
165+msgstr "Mostrar palavra-passe"
163
166
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
167#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
168msgid "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"
167
202
168#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
204msgid "Search"
170−msgstr ""
205+msgstr "Procurar"
171
206
172−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
173#, qt-format
208#, qt-format
174msgid "Please enter %1"
209msgid "Please enter %1"
175−msgstr ""
210+msgstr "Por favor, introduza %1"
po/pt_BR.po+52−20
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-05-15 14:31+0000\n"
11+"PO-Revision-Date: 2014-07-17 05:46+0000\n"
12−"Last-Translator: Rafael Neri <Unknown>\n"
12+"Last-Translator: Tiago Hillebrandt <tiagohillebrandt@gmail.com>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Bloquear no lançador"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Desbloquear do lançador"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,11 +82,7 @@ msgstr "Chamada de emergência"
82
82
83#: qml/Components/Lockscreen.qml:231
83#: qml/Components/Lockscreen.qml:231
84msgid "OK"
84msgid "OK"
85−msgstr ""
85+msgstr "OK"
86−
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Pesquisas recentes"
90
86
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
@@ -99,7 +95,7 @@ msgstr "Olá"
99
95
100#: qml/Components/PinLockscreen.qml:198
96#: qml/Components/PinLockscreen.qml:198
101msgid "CANCEL"
97msgid "CANCEL"
102−msgstr ""
98+msgstr "CANCELAR"
103
99
104#: qml/Components/PinLockscreen.qml:216
100#: qml/Components/PinLockscreen.qml:216
105msgid "DONE"
101msgid "DONE"
@@ -109,7 +105,7 @@ msgstr ""
109msgid "See more"
105msgid "See more"
110msgstr "Ver mais"
106msgstr "Ver mais"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "Ver menos"
110msgstr "Ver menos"
115
111
@@ -117,6 +113,10 @@ msgstr "Ver menos"
117msgid "Recent"
113msgid "Recent"
118msgstr "Recentes"
114msgstr "Recentes"
119
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122msgstr "Mais..."
122msgstr "Mais..."
@@ -125,15 +125,15 @@ msgstr "Mais..."
125msgid "Less..."
125msgid "Less..."
126msgstr "Menos..."
126msgstr "Menos..."
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "Avaliar isto"
130msgstr "Avaliar isto"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "Adicionar uma análise"
134msgstr "Adicionar uma análise"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "Enviar"
138msgstr "Enviar"
139
139
@@ -169,11 +169,43 @@ msgstr "Exibir senha"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Por favor, digite o PIN do cartão SIM"
170msgstr "Por favor, digite o PIN do cartão SIM"
171
171
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+
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "Pesquisar"
206msgstr "Pesquisar"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "Por favor, digite %1"
211msgstr "Por favor, digite %1"
po/ro.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Căutări recente"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Căutare"
202msgstr "Căutare"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/ru.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-05-15 12:57+0000\n"
11"PO-Revision-Date: 2014-05-15 12:57+0000\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Закрепить на панели"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Убрать с панели"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,10 +87,6 @@ msgstr "Экстренный вызов"
87msgid "OK"
87msgid "OK"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Components/PageHeader.qml:365
91−msgid "Recent searches"
92−msgstr "Последние поисковые запросы"
93−
94#: qml/Components/PassphraseLockscreen.qml:60
90#: qml/Components/PassphraseLockscreen.qml:60
95#, qt-format
91#, qt-format
96msgid "Hello %1"
92msgid "Hello %1"
@@ -112,7 +108,7 @@ msgstr ""
112msgid "See more"
108msgid "See more"
113msgstr "Подробнее"
109msgstr "Подробнее"
114
110
115−#: qml/Components/SeeMore.qml:58
111+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
116msgid "See less"
112msgid "See less"
117msgstr "Вкратце"
113msgstr "Вкратце"
118
114
@@ -120,6 +116,10 @@ msgstr "Вкратце"
120msgid "Recent"
116msgid "Recent"
121msgstr "Недавние"
117msgstr "Недавние"
122
118
119+#: qml/Dash/GenericScopeView.qml:330
120+msgid "See all"
121+msgstr ""
122+
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
124msgid "More..."
124msgid "More..."
125msgstr "Ещё..."
125msgstr "Ещё..."
@@ -128,15 +128,15 @@ msgstr "Ещё..."
128msgid "Less..."
128msgid "Less..."
129msgstr "Меньше..."
129msgstr "Меньше..."
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:82
131+#: qml/Dash/Previews/PreviewRatingInput.qml:81
132msgid "Rate this"
132msgid "Rate this"
133msgstr "Оцените это"
133msgstr "Оцените это"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:128
135+#: qml/Dash/Previews/PreviewRatingInput.qml:126
136msgid "Add a review"
136msgid "Add a review"
137msgstr "Добавьте отзыв"
137msgstr "Добавьте отзыв"
138
138
139−#: qml/Dash/Previews/PreviewRatingInput.qml:168
139+#: qml/Dash/Previews/PreviewRatingInput.qml:166
140msgid "Send"
140msgid "Send"
141msgstr "Отправить"
141msgstr "Отправить"
142
142
@@ -172,11 +172,43 @@ msgstr "Показать пароль"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr "Введите PIN код"
173msgstr "Введите PIN код"
174
174
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+
175#: qml/Panel/SearchIndicator.qml:27
207#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
208msgid "Search"
177msgstr "Поиск"
209msgstr "Поиск"
178
210
179−#: qml/Shell.qml:334
211+#: qml/Shell.qml:359
180#, qt-format
212#, qt-format
181msgid "Please enter %1"
213msgid "Please enter %1"
182msgstr "Пожалуйста, введите %1"
214msgstr "Пожалуйста, введите %1"
po/shn.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/si.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/sl.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-23 09:29+0000\n"
11+"PO-Revision-Date: 2014-07-28 12:32+0000\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-24 06:33+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-29 06:54+0000\n"
18−"X-Generator: Launchpad (build 17065)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Zakleni na zaganjalnik"
23+msgstr "Pripni bližnjico"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Odkleni z zaganjalnika"
27+msgstr "Odpni bližnjico"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,10 +84,6 @@ msgstr "Klic v sili"
84msgid "OK"
84msgid "OK"
85msgstr "V REDU"
85msgstr "V REDU"
86
86
87−#: qml/Components/PageHeader.qml:365
88−msgid "Recent searches"
89−msgstr "Nedavna iskanja"
90−
91#: qml/Components/PassphraseLockscreen.qml:60
87#: qml/Components/PassphraseLockscreen.qml:60
92#, qt-format
88#, qt-format
93msgid "Hello %1"
89msgid "Hello %1"
@@ -109,7 +105,7 @@ msgstr "KONČANO"
109msgid "See more"
105msgid "See more"
110msgstr "Pokaži več"
106msgstr "Pokaži več"
111
107
112−#: qml/Components/SeeMore.qml:58
108+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
113msgid "See less"
109msgid "See less"
114msgstr "Pokaži manj"
110msgstr "Pokaži manj"
115
111
@@ -117,6 +113,10 @@ msgstr "Pokaži manj"
117msgid "Recent"
113msgid "Recent"
118msgstr "Nedavno"
114msgstr "Nedavno"
119
115
116+#: qml/Dash/GenericScopeView.qml:330
117+msgid "See all"
118+msgstr ""
119+
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "More..."
121msgid "More..."
122msgstr "Več ..."
122msgstr "Več ..."
@@ -125,15 +125,15 @@ msgstr "Več ..."
125msgid "Less..."
125msgid "Less..."
126msgstr "Manj ..."
126msgstr "Manj ..."
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:82
128+#: qml/Dash/Previews/PreviewRatingInput.qml:81
129msgid "Rate this"
129msgid "Rate this"
130msgstr "Ocenite"
130msgstr "Ocenite"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:128
132+#: qml/Dash/Previews/PreviewRatingInput.qml:126
133msgid "Add a review"
133msgid "Add a review"
134msgstr "Dodaj oceno"
134msgstr "Dodaj oceno"
135
135
136−#: qml/Dash/Previews/PreviewRatingInput.qml:168
136+#: qml/Dash/Previews/PreviewRatingInput.qml:166
137msgid "Send"
137msgid "Send"
138msgstr "Pošlji"
138msgstr "Pošlji"
139
139
@@ -169,11 +169,43 @@ msgstr "Pokaži geslo"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Vnesite PIN kartice SIM"
170msgstr "Vnesite PIN kartice SIM"
171
171
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+
172#: qml/Panel/SearchIndicator.qml:27
204#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
205msgid "Search"
174msgstr "Iskanje"
206msgstr "Iskanje"
175
207
176−#: qml/Shell.qml:334
208+#: qml/Shell.qml:359
177#, qt-format
209#, qt-format
178msgid "Please enter %1"
210msgid "Please enter %1"
179msgstr "Vnesite %1"
211msgstr "Vnesite %1"
po/sq.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
13"Language-Team: Albanian <sq@li.org>\n"
13"Language-Team: Albanian <sq@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:50+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:16+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -81,10 +81,6 @@ msgstr ""
81msgid "OK"
81msgid "OK"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/PageHeader.qml:365
85−msgid "Recent searches"
86−msgstr ""
87−
88#: qml/Components/PassphraseLockscreen.qml:60
84#: qml/Components/PassphraseLockscreen.qml:60
89#, qt-format
85#, qt-format
90msgid "Hello %1"
86msgid "Hello %1"
@@ -106,7 +102,7 @@ msgstr ""
106msgid "See more"
102msgid "See more"
107msgstr ""
103msgstr ""
108
104
109−#: qml/Components/SeeMore.qml:58
105+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
110msgid "See less"
106msgid "See less"
111msgstr ""
107msgstr ""
112
108
@@ -114,6 +110,10 @@ msgstr ""
114msgid "Recent"
110msgid "Recent"
115msgstr ""
111msgstr ""
116
112
113+#: qml/Dash/GenericScopeView.qml:330
114+msgid "See all"
115+msgstr ""
116+
117#: qml/Dash/Previews/PreviewActionCombo.qml:34
117#: qml/Dash/Previews/PreviewActionCombo.qml:34
118msgid "More..."
118msgid "More..."
119msgstr ""
119msgstr ""
@@ -122,15 +122,15 @@ msgstr ""
122msgid "Less..."
122msgid "Less..."
123msgstr ""
123msgstr ""
124
124
125−#: qml/Dash/Previews/PreviewRatingInput.qml:82
125+#: qml/Dash/Previews/PreviewRatingInput.qml:81
126msgid "Rate this"
126msgid "Rate this"
127msgstr "Vlerësoje këtë"
127msgstr "Vlerësoje këtë"
128
128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:128
129+#: qml/Dash/Previews/PreviewRatingInput.qml:126
130msgid "Add a review"
130msgid "Add a review"
131msgstr "Shto një rishikim"
131msgstr "Shto një rishikim"
132
132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:168
133+#: qml/Dash/Previews/PreviewRatingInput.qml:166
134msgid "Send"
134msgid "Send"
135msgstr ""
135msgstr ""
136
136
@@ -166,11 +166,43 @@ msgstr ""
166msgid "Please enter SIM PIN"
166msgid "Please enter SIM PIN"
167msgstr ""
167msgstr ""
168
168
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+
169#: qml/Panel/SearchIndicator.qml:27
201#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
202msgid "Search"
171msgstr ""
203msgstr ""
172
204
173−#: qml/Shell.qml:334
205+#: qml/Shell.qml:359
174#, qt-format
206#, qt-format
175msgid "Please enter %1"
207msgid "Please enter %1"
176msgstr ""
208msgstr ""
po/sr.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "Скорашње претраге"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Претрага"
202msgstr "Претрага"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/sv.po+79−44
@@ -1,34 +1,35 @@
1# Swedish translation for unity
1# 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
3# This file is distributed under the same license as the unity package.
3# 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.
5#
5#
6msgid ""
6msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-07 19:14+0000\n"
11+"PO-Revision-Date: 2014-07-25 14:27+0000\n"
12−"Last-Translator: mikasjoman <Unknown>\n"
12+"Last-Translator: Josef Andersson <Unknown>\n"
13−"Language-Team: Swedish <sv@li.org>\n"
13+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19+"Language: sv\n"
19
20
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
23+msgid "Pin shortcut"
23−msgstr ""
24+msgstr "Fäst genväg"
24
25
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
27+msgid "Unpin shortcut"
27−msgstr ""
28+msgstr "Släpp genväg"
28
29
29#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
31msgid "Skip intro"
31−msgstr ""
32+msgstr "Hoppa över introduktion"
32
33
33#: qml/Components/EdgeDemo.qml:113
34#: qml/Components/EdgeDemo.qml:113
34msgid "Right edge"
35msgid "Right edge"
@@ -36,7 +37,7 @@ msgstr "Högerkant"
36
37
37#: qml/Components/EdgeDemo.qml:114
38#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
39msgid "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"
40
41
41#: qml/Components/EdgeDemo.qml:145
42#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
43msgid "Top edge"
@@ -44,7 +45,7 @@ msgstr "Överkant"
44
45
45#: qml/Components/EdgeDemo.qml:146
46#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
47msgid "Try swiping from the top edge to access the indicators"
47−msgstr ""
48+msgstr "Svep från överkanten för att komma åt indikatorerna"
48
49
49#: qml/Components/EdgeDemo.qml:171
50#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
51msgid "Close"
@@ -52,7 +53,7 @@ msgstr "Stäng"
52
53
53#: qml/Components/EdgeDemo.qml:172
54#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
55msgid "Swipe up again to close the settings screen"
55−msgstr ""
56+msgstr "Svep upp igen för att stänga inställningsfönstret"
56
57
57#: qml/Components/EdgeDemo.qml:199
58#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
59msgid "Left edge"
@@ -60,17 +61,19 @@ msgstr "Vänsterkant"
60
61
61#: qml/Components/EdgeDemo.qml:200
62#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63msgid "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"
64
65
65#: qml/Components/EdgeDemo.qml:227
66#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
67msgid "Well done"
67−msgstr ""
68+msgstr "Bra gjort"
68
69
69#: qml/Components/EdgeDemo.qml:228
70#: qml/Components/EdgeDemo.qml:228
70msgid ""
71msgid ""
71"You have now mastered the edge gestures and can start using the "
72"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
73msgstr ""
74msgstr ""
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"
74
77
75#: qml/Components/Lockscreen.qml:214
78#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
79msgid "Emergency Call"
@@ -78,64 +81,64 @@ msgstr "Nödsamtal"
78
81
79#: qml/Components/Lockscreen.qml:231
82#: qml/Components/Lockscreen.qml:231
80msgid "OK"
83msgid "OK"
81−msgstr ""
84+msgstr "Ok"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86
85
87#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
87#, qt-format
89msgid "Hello %1"
88msgid "Hello %1"
90−msgstr ""
89+msgstr "Hej %1"
91
90
92#: qml/Components/PassphraseLockscreen.qml:60
91#: qml/Components/PassphraseLockscreen.qml:60
93msgid "Hello"
92msgid "Hello"
94−msgstr ""
93+msgstr "Hej"
95
94
96#: qml/Components/PinLockscreen.qml:198
95#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
96msgid "CANCEL"
98−msgstr ""
97+msgstr "AVBRYT"
99
98
100#: qml/Components/PinLockscreen.qml:216
99#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
100msgid "DONE"
102−msgstr ""
101+msgstr "KLAR"
103
102
104#: qml/Components/SeeMore.qml:35
103#: qml/Components/SeeMore.qml:35
105msgid "See more"
104msgid "See more"
106−msgstr ""
105+msgstr "Se mer"
107
106
108−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
108msgid "See less"
110−msgstr ""
109+msgstr "Se mindre"
111
110
112#: qml/Dash/DashApps.qml:37
111#: qml/Dash/DashApps.qml:37
113msgid "Recent"
112msgid "Recent"
114−msgstr ""
113+msgstr "Senaste"
114+
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr "Visa alla"
115
118
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
120msgid "More..."
118−msgstr ""
121+msgstr "Mer…"
119
122
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
123#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
124msgid "Less..."
122−msgstr ""
125+msgstr "Mindre…"
123
126
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
128msgid "Rate this"
126−msgstr ""
129+msgstr "Betygsätt detta"
127
130
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
132msgid "Add a review"
130msgstr "Lägg till en recension"
133msgstr "Lägg till en recension"
131
134
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
136msgid "Send"
134−msgstr ""
137+msgstr "Skicka"
135
138
136#: qml/Greeter/Greeter.qml:157
139#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
140msgid "Swipe to unlock"
138−msgstr ""
141+msgstr "Svep för att låsa upp"
139
142
140#: qml/Hud/HudParametrizedActionsPage.qml:132
143#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
144msgid "Confirm"
@@ -147,15 +150,15 @@ msgstr "Skriv eller tala in ett kommando"
147
150
148#: qml/Hud/Hud.qml:84
151#: qml/Hud/Hud.qml:84
149msgid "Loading. Please Wait..."
152msgid "Loading. Please Wait..."
150−msgstr "Laddar. Var god vänta..."
153+msgstr "Läser in. Var god vänta…"
151
154
152#: qml/Hud/Hud.qml:89
155#: qml/Hud/Hud.qml:89
153msgid "Speak Now..."
156msgid "Speak Now..."
154−msgstr "Tala nu..."
157+msgstr "Tala nu…"
155
158
156#: qml/Hud/Hud.qml:94
159#: qml/Hud/Hud.qml:94
157msgid "Speaking..."
160msgid "Speaking..."
158−msgstr "Talar..."
161+msgstr "Talar…"
159
162
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
163#: qml/Notifications/NotificationMenuItemFactory.qml:91
161msgid "Show password"
164msgid "Show password"
@@ -163,13 +166,45 @@ msgstr "Visa lösenord"
163
166
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
167#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
168msgid "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"
167
202
168#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
204msgid "Search"
170msgstr "Sök"
205msgstr "Sök"
171
206
172−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
173#, qt-format
208#, qt-format
174msgid "Please enter %1"
209msgid "Please enter %1"
175msgstr "Vänligen fyll i %1"
210msgstr "Vänligen fyll i %1"
po/sw.po+47−15
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
12−"Last-Translator: Damas Mlabwa <Unknown>\n"
12+"Last-Translator: Damas <Unknown>\n"
13"Language-Team: Swahili <sw@li.org>\n"
13"Language-Team: Swahili <sw@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "Tuma"
134msgstr "Tuma"
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "Tafuta"
202msgstr "Tafuta"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/ta.po+46−14
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19"Language: ta\n"
19"Language: ta\n"
20
20
21#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:73
22#: plugins/Unity/Launcher/launcheritem.cpp:73
23−msgid "Lock to Launcher"
23+msgid "Pin shortcut"
24msgstr ""
24msgstr ""
25
25
26#: plugins/Unity/Launcher/launcheritem.cpp:73
26#: plugins/Unity/Launcher/launcheritem.cpp:73
27−msgid "Unlock from Launcher"
27+msgid "Unpin shortcut"
28msgstr ""
28msgstr ""
29
29
30#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
@@ -83,10 +83,6 @@ msgstr "அவசர அழைப்பு"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "கடையாக தேடப்பட்டவைகள்"
89−
90#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
91#, qt-format
87#, qt-format
92msgid "Hello %1"
88msgid "Hello %1"
@@ -108,7 +104,7 @@ msgstr ""
108msgid "See more"
104msgid "See more"
109msgstr ""
105msgstr ""
110
106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112msgid "See less"
108msgid "See less"
113msgstr ""
109msgstr ""
114
110
@@ -116,6 +112,10 @@ msgstr ""
116msgid "Recent"
112msgid "Recent"
117msgstr ""
113msgstr ""
118
114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120msgid "More..."
120msgid "More..."
121msgstr ""
121msgstr ""
@@ -124,15 +124,15 @@ msgstr ""
124msgid "Less..."
124msgid "Less..."
125msgstr ""
125msgstr ""
126
126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128msgid "Rate this"
128msgid "Rate this"
129msgstr "இதை மதிப்பிடு"
129msgstr "இதை மதிப்பிடு"
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132msgid "Add a review"
132msgid "Add a review"
133msgstr "ஒரு பரிசீலனையை சேர்"
133msgstr "ஒரு பரிசீலனையை சேர்"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136msgid "Send"
136msgid "Send"
137msgstr "அனுப்பு"
137msgstr "அனுப்பு"
138
138
@@ -168,11 +168,43 @@ msgstr ""
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr ""
169msgstr ""
170
170
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+
171#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
204msgid "Search"
173msgstr "தெடு"
205msgstr "தெடு"
174
206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176#, qt-format
208#, qt-format
177msgid "Please enter %1"
209msgid "Please enter %1"
178msgstr "தயவுச்செய்து %1 உள்ளிடு"
210msgstr "தயவுச்செய்து %1 உள்ளிடு"
po/te.po+74−42
@@ -7,40 +7,40 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2013-06-27 09:57+0000\n"
11+"PO-Revision-Date: 2014-07-19 10:04+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12+"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
31−msgstr ""
31+msgstr "పరిచయాన్ని దాటవేయి"
32
32
33#: qml/Components/EdgeDemo.qml:113
33#: qml/Components/EdgeDemo.qml:113
34msgid "Right edge"
34msgid "Right edge"
35−msgstr ""
35+msgstr "కుడి అంచు"
36
36
37#: qml/Components/EdgeDemo.qml:114
37#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
38msgid "Try swiping from the right edge to unlock the phone"
39−msgstr ""
39+msgstr "ఫోను తాళంతీయుటకు కుడి అంచు నుండి స్వైప్ చేయ ప్రయత్నించండి"
40
40
41#: qml/Components/EdgeDemo.qml:145
41#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
42msgid "Top edge"
43−msgstr ""
43+msgstr "పై అంచు"
44
44
45#: qml/Components/EdgeDemo.qml:146
45#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
46msgid "Try swiping from the top edge to access the indicators"
@@ -48,15 +48,15 @@ msgstr ""
48
48
49#: qml/Components/EdgeDemo.qml:171
49#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
50msgid "Close"
51−msgstr ""
51+msgstr "మూసివేయి"
52
52
53#: qml/Components/EdgeDemo.qml:172
53#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
54msgid "Swipe up again to close the settings screen"
55−msgstr ""
55+msgstr "అమరికల తెరను మూసివేయుటకు మరలా పైకి స్వైప్ చేయండి"
56
56
57#: qml/Components/EdgeDemo.qml:199
57#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
58msgid "Left edge"
59−msgstr ""
59+msgstr "ఎడమ అంచు"
60
60
61#: qml/Components/EdgeDemo.qml:200
61#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
@@ -64,7 +64,7 @@ msgstr ""
64
64
65#: qml/Components/EdgeDemo.qml:227
65#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
66msgid "Well done"
67−msgstr ""
67+msgstr "బాగా చేశారు"
68
68
69#: qml/Components/EdgeDemo.qml:228
69#: qml/Components/EdgeDemo.qml:228
70msgid ""
70msgid ""
@@ -74,72 +74,72 @@ msgstr ""
74
74
75#: qml/Components/Lockscreen.qml:214
75#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
76msgid "Emergency Call"
77−msgstr ""
77+msgstr "అత్యవసర పిలుపు"
78
78
79#: qml/Components/Lockscreen.qml:231
79#: qml/Components/Lockscreen.qml:231
80msgid "OK"
80msgid "OK"
81−msgstr ""
81+msgstr "సరే"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86
82
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
90−msgstr ""
86+msgstr "హలో %1"
91
87
92#: qml/Components/PassphraseLockscreen.qml:60
88#: qml/Components/PassphraseLockscreen.qml:60
93msgid "Hello"
89msgid "Hello"
94−msgstr ""
90+msgstr "హలో"
95
91
96#: qml/Components/PinLockscreen.qml:198
92#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
93msgid "CANCEL"
98−msgstr ""
94+msgstr "రద్దుచేయి"
99
95
100#: qml/Components/PinLockscreen.qml:216
96#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
97msgid "DONE"
102−msgstr ""
98+msgstr "పూర్తయ్యింది"
103
99
104#: qml/Components/SeeMore.qml:35
100#: qml/Components/SeeMore.qml:35
105msgid "See more"
101msgid "See more"
106−msgstr ""
102+msgstr "మరింత చూడండి"
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
112#: qml/Dash/DashApps.qml:37
108#: qml/Dash/DashApps.qml:37
113msgid "Recent"
109msgid "Recent"
110+msgstr "ఇటీవలివి"
111+
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114msgstr ""
114msgstr ""
115
115
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118−msgstr ""
118+msgstr "మరిన్ని..."
119
119
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130−msgstr ""
130+msgstr "ఒక సమీక్షను వ్రాయండి"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134−msgstr ""
134+msgstr "పంపు"
135
135
136#: qml/Greeter/Greeter.qml:157
136#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
137msgid "Swipe to unlock"
138−msgstr ""
138+msgstr "తాళంతీయుటకు గీకండి"
139
139
140#: qml/Hud/HudParametrizedActionsPage.qml:132
140#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
141msgid "Confirm"
142−msgstr ""
142+msgstr "నిర్ధారించండి"
143
143
144#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
144#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
145msgid "Type or say a command"
145msgid "Type or say a command"
@@ -147,29 +147,61 @@ msgstr ""
147
147
148#: qml/Hud/Hud.qml:84
148#: qml/Hud/Hud.qml:84
149msgid "Loading. Please Wait..."
149msgid "Loading. Please Wait..."
150−msgstr ""
150+msgstr "లోడవుతోంది. దయచేసి వేచివుండండి..."
151
151
152#: qml/Hud/Hud.qml:89
152#: qml/Hud/Hud.qml:89
153msgid "Speak Now..."
153msgid "Speak Now..."
154−msgstr ""
154+msgstr "ఇప్పుడు మాట్లాడండి..."
155
155
156#: qml/Hud/Hud.qml:94
156#: qml/Hud/Hud.qml:94
157msgid "Speaking..."
157msgid "Speaking..."
158−msgstr ""
158+msgstr "మాట్లాడుతున్నారు..."
159
159
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
160#: qml/Notifications/NotificationMenuItemFactory.qml:91
161msgid "Show password"
161msgid "Show password"
162−msgstr ""
162+msgstr "సంకేతపదాన్ని చూపించు"
163
163
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
165msgid "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"
166msgstr ""
198msgstr ""
167
199
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170−msgstr ""
202+msgstr "వెతుకు"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175−msgstr ""
207+msgstr "దయచేసి %1 ప్రవేశపెట్టండి"
po/tr.po+52−20
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-05-19 12:52+0000\n"
11+"PO-Revision-Date: 2014-07-16 17:58+0000\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Başlatıcıya Sabitle"
23+msgstr "Kısayolu iğnele"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Başlatıcıdan Ayır"
27+msgstr "Kısayol iğnesini kaldır"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -81,11 +81,7 @@ msgstr "Acil Arama"
81
81
82#: qml/Components/Lockscreen.qml:231
82#: qml/Components/Lockscreen.qml:231
83msgid "OK"
83msgid "OK"
84−msgstr ""
84+msgstr "Tamam"
85−
86−#: qml/Components/PageHeader.qml:365
87−msgid "Recent searches"
88−msgstr "Son aramalar"
89
85
90#: qml/Components/PassphraseLockscreen.qml:60
86#: qml/Components/PassphraseLockscreen.qml:60
91#, qt-format
87#, qt-format
@@ -98,17 +94,17 @@ msgstr "Merhaba"
98
94
99#: qml/Components/PinLockscreen.qml:198
95#: qml/Components/PinLockscreen.qml:198
100msgid "CANCEL"
96msgid "CANCEL"
101−msgstr ""
97+msgstr "İPTAL"
102
98
103#: qml/Components/PinLockscreen.qml:216
99#: qml/Components/PinLockscreen.qml:216
104msgid "DONE"
100msgid "DONE"
105−msgstr ""
101+msgstr "BİTTİ"
106
102
107#: qml/Components/SeeMore.qml:35
103#: qml/Components/SeeMore.qml:35
108msgid "See more"
104msgid "See more"
109msgstr "Daha fazlası"
105msgstr "Daha fazlası"
110
106
111−#: qml/Components/SeeMore.qml:58
107+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
112msgid "See less"
108msgid "See less"
113msgstr "Daha azını gör"
109msgstr "Daha azını gör"
114
110
@@ -116,6 +112,10 @@ msgstr "Daha azını gör"
116msgid "Recent"
112msgid "Recent"
117msgstr "En son"
113msgstr "En son"
118
114
115+#: qml/Dash/GenericScopeView.qml:330
116+msgid "See all"
117+msgstr ""
118+
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
119#: qml/Dash/Previews/PreviewActionCombo.qml:34
120msgid "More..."
120msgid "More..."
121msgstr "Daha fazlası..."
121msgstr "Daha fazlası..."
@@ -124,15 +124,15 @@ msgstr "Daha fazlası..."
124msgid "Less..."
124msgid "Less..."
125msgstr "Daha az.."
125msgstr "Daha az.."
126
126
127−#: qml/Dash/Previews/PreviewRatingInput.qml:82
127+#: qml/Dash/Previews/PreviewRatingInput.qml:81
128msgid "Rate this"
128msgid "Rate this"
129msgstr "Oyla"
129msgstr "Oyla"
130
130
131−#: qml/Dash/Previews/PreviewRatingInput.qml:128
131+#: qml/Dash/Previews/PreviewRatingInput.qml:126
132msgid "Add a review"
132msgid "Add a review"
133msgstr "Bir inceleme ekle"
133msgstr "Bir inceleme ekle"
134
134
135−#: qml/Dash/Previews/PreviewRatingInput.qml:168
135+#: qml/Dash/Previews/PreviewRatingInput.qml:166
136msgid "Send"
136msgid "Send"
137msgstr "Gönder"
137msgstr "Gönder"
138
138
@@ -168,11 +168,43 @@ msgstr "Parolayı göster"
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr "Lütfen SIM PIN'inizi girin"
169msgstr "Lütfen SIM PIN'inizi girin"
170
170
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+
171#: qml/Panel/SearchIndicator.qml:27
203#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
204msgid "Search"
173msgstr "Ara"
205msgstr "Ara"
174
206
175−#: qml/Shell.qml:334
207+#: qml/Shell.qml:359
176#, qt-format
208#, qt-format
177msgid "Please enter %1"
209msgid "Please enter %1"
178msgstr "Lütfen %1 girin"
210msgstr "Lütfen %1 girin"
po/ug.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-13 21:07+0000\n"
11+"PO-Revision-Date: 2014-07-29 04:06+0000\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ئىجراچىغا سولىۋەت"
23+msgstr "تېزلەتمىنى قوي"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ئىجراچىدىن چىقار"
27+msgstr "تېزلەتمىنى ئېلىۋەت"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,10 +82,6 @@ msgstr "جىددىي تېلېفون"
82msgid "OK"
82msgid "OK"
83msgstr "تامام"
83msgstr "تامام"
84
84
85−#: qml/Components/PageHeader.qml:365
86−msgid "Recent searches"
87−msgstr "يېقىنقى ئىزدەشلەر"
88−
89#: qml/Components/PassphraseLockscreen.qml:60
85#: qml/Components/PassphraseLockscreen.qml:60
90#, qt-format
86#, qt-format
91msgid "Hello %1"
87msgid "Hello %1"
@@ -107,7 +103,7 @@ msgstr "تامام"
107msgid "See more"
103msgid "See more"
108msgstr "جىقراق كۆرۈش"
104msgstr "جىقراق كۆرۈش"
109
105
110−#: qml/Components/SeeMore.qml:58
106+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
111msgid "See less"
107msgid "See less"
112msgstr "ئازراق كۆرۈش"
108msgstr "ئازراق كۆرۈش"
113
109
@@ -115,6 +111,10 @@ msgstr "ئازراق كۆرۈش"
115msgid "Recent"
111msgid "Recent"
116msgstr "يېقىنقى"
112msgstr "يېقىنقى"
117
113
114+#: qml/Dash/GenericScopeView.qml:330
115+msgid "See all"
116+msgstr "ھەممىنى كۆرۈش…"
117+
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
118#: qml/Dash/Previews/PreviewActionCombo.qml:34
119msgid "More..."
119msgid "More..."
120msgstr "تېخىمۇ كۆپ…"
120msgstr "تېخىمۇ كۆپ…"
@@ -123,15 +123,15 @@ msgstr "تېخىمۇ كۆپ…"
123msgid "Less..."
123msgid "Less..."
124msgstr "ئازراق..."
124msgstr "ئازراق..."
125
125
126−#: qml/Dash/Previews/PreviewRatingInput.qml:82
126+#: qml/Dash/Previews/PreviewRatingInput.qml:81
127msgid "Rate this"
127msgid "Rate this"
128msgstr "بۇنى باھالاڭ"
128msgstr "بۇنى باھالاڭ"
129
129
130−#: qml/Dash/Previews/PreviewRatingInput.qml:128
130+#: qml/Dash/Previews/PreviewRatingInput.qml:126
131msgid "Add a review"
131msgid "Add a review"
132msgstr "باھا قوشۇش"
132msgstr "باھا قوشۇش"
133
133
134−#: qml/Dash/Previews/PreviewRatingInput.qml:168
134+#: qml/Dash/Previews/PreviewRatingInput.qml:166
135msgid "Send"
135msgid "Send"
136msgstr "ئەۋەت"
136msgstr "ئەۋەت"
137
137
@@ -167,11 +167,43 @@ msgstr "ئىم كۆرسەت"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
168msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
169
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"
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+
170#: qml/Panel/SearchIndicator.qml:27
202#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
203msgid "Search"
172msgstr "ئىزدە"
204msgstr "ئىزدە"
173
205
174−#: qml/Shell.qml:334
206+#: qml/Shell.qml:359
175#, qt-format
207#, qt-format
176msgid "Please enter %1"
208msgid "Please enter %1"
177msgstr "%1 نى كىرگۈزۈڭ"
209msgstr "%1 نى كىرگۈزۈڭ"
po/uk.po+49−17
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-08 19:09+0000\n"
11+"PO-Revision-Date: 2014-07-29 07:53+0000\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Зафіксувати на панелі запуску"
23+msgstr "Заблокувати кнопку"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Від’єднати від панелі запуску"
27+msgstr "Розблокувати кнопку"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -85,10 +85,6 @@ msgstr "Терміновий виклик"
85msgid "OK"
85msgid "OK"
86msgstr "Гаразд"
86msgstr "Гаразд"
87
87
88−#: qml/Components/PageHeader.qml:365
89−msgid "Recent searches"
90−msgstr "Нещодавні пошуки"
91−
92#: qml/Components/PassphraseLockscreen.qml:60
88#: qml/Components/PassphraseLockscreen.qml:60
93#, qt-format
89#, qt-format
94msgid "Hello %1"
90msgid "Hello %1"
@@ -110,7 +106,7 @@ msgstr "Виконано"
110msgid "See more"
106msgid "See more"
111msgstr "Докладніше"
107msgstr "Докладніше"
112
108
113−#: qml/Components/SeeMore.qml:58
109+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
114msgid "See less"
110msgid "See less"
115msgstr "Стисліше"
111msgstr "Стисліше"
116
112
@@ -118,6 +114,10 @@ msgstr "Стисліше"
118msgid "Recent"
114msgid "Recent"
119msgstr "Нещодавні"
115msgstr "Нещодавні"
120
116
117+#: qml/Dash/GenericScopeView.qml:330
118+msgid "See all"
119+msgstr "Детальніше"
120+
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
121#: qml/Dash/Previews/PreviewActionCombo.qml:34
122msgid "More..."
122msgid "More..."
123msgstr "Більше…"
123msgstr "Більше…"
@@ -126,15 +126,15 @@ msgstr "Більше…"
126msgid "Less..."
126msgid "Less..."
127msgstr "Менше..."
127msgstr "Менше..."
128
128
129−#: qml/Dash/Previews/PreviewRatingInput.qml:82
129+#: qml/Dash/Previews/PreviewRatingInput.qml:81
130msgid "Rate this"
130msgid "Rate this"
131msgstr "Оцінити"
131msgstr "Оцінити"
132
132
133−#: qml/Dash/Previews/PreviewRatingInput.qml:128
133+#: qml/Dash/Previews/PreviewRatingInput.qml:126
134msgid "Add a review"
134msgid "Add a review"
135msgstr "Додати рецензію"
135msgstr "Додати рецензію"
136
136
137−#: qml/Dash/Previews/PreviewRatingInput.qml:168
137+#: qml/Dash/Previews/PreviewRatingInput.qml:166
138msgid "Send"
138msgid "Send"
139msgstr "Надіслати"
139msgstr "Надіслати"
140
140
@@ -170,11 +170,43 @@ msgstr "Показати пароль"
170msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
171msgstr "Введіть PIN-код SIM-картки"
171msgstr "Введіть PIN-код SIM-картки"
172
172
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+
173#: qml/Panel/SearchIndicator.qml:27
205#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
206msgid "Search"
175msgstr "Пошук"
207msgstr "Пошук"
176
208
177−#: qml/Shell.qml:334
209+#: qml/Shell.qml:359
178#, qt-format
210#, qt-format
179msgid "Please enter %1"
211msgid "Please enter %1"
180msgstr "Будь ласка, введіть %1"
212msgstr "Будь ласка, введіть %1"
po/unity8.pot+45−13
@@ -8,22 +8,22 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
11+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
15"Language: \n"
16"MIME-Version: 1.0\n"
16"MIME-Version: 1.0\n"
17−"Content-Type: text/plain; charset=CHARSET\n"
17+"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
18"Content-Transfer-Encoding: 8bit\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/update-unity-pot+2−1
@@ -22,6 +22,7 @@ xgettext \
22 --keyword=tr \
22 --keyword=tr \
23 --keyword=tr:1,2 \
23 --keyword=tr:1,2 \
24 --package-name="unity8" \
24 --package-name="unity8" \
25− --copyright-holder="Canonical Ltd."
25+ --copyright-holder="Canonical Ltd." \
26+ --from-code="UTF-8"
26
27
27echo "$PROGNAME: $PO_DIR/auto-generated.pot updated"
28echo "$PROGNAME: $PO_DIR/auto-generated.pot updated"
po/vi.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/xh.po+46−14
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,10 +80,6 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr ""
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr ""
126msgstr ""
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr ""
130msgstr ""
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr ""
134msgstr ""
135
135
@@ -165,11 +165,43 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr ""
202msgstr ""
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr ""
207msgstr ""
po/zh_CN.po+50−18
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-06-12 08:55+0000\n"
11+"PO-Revision-Date: 2014-07-29 02:48+0000\n"
12−"Last-Translator: Shengjing Zhu <Unknown>\n"
12+"Last-Translator: Luo Lei <luolei@ubuntukylin.com>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-30 07:08+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "固定到启动器"
23+msgstr "固定快捷方式"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "从启动器移除"
27+msgstr "取消固定快捷方式"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "紧急电话"
80msgid "OK"
80msgid "OK"
81msgstr "确定"
81msgstr "确定"
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "近期搜索"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr "完成"
105msgid "See more"
101msgid "See more"
106msgstr "了解更多"
102msgstr "了解更多"
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr "显示更少"
106msgstr "显示更少"
111
107
@@ -113,6 +109,10 @@ msgstr "显示更少"
113msgid "Recent"
109msgid "Recent"
114msgstr "最近使用过的"
110msgstr "最近使用过的"
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "查看全部"
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr "更多..."
118msgstr "更多..."
@@ -121,15 +121,15 @@ msgstr "更多..."
121msgid "Less..."
121msgid "Less..."
122msgstr "更少..."
122msgstr "更少..."
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "评分"
126msgstr "评分"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "添加评论"
130msgstr "添加评论"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "发送"
134msgstr "发送"
135
135
@@ -165,11 +165,43 @@ msgstr "显示密码"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr "请输入 SIM PIN"
166msgstr "请输入 SIM PIN"
167
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 "下载失败,请点击重试"
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "搜索"
202msgstr "搜索"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "请输入 %1"
207msgstr "请输入 %1"
po/zh_HK.po+48−16
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11"PO-Revision-Date: 2014-01-25 13:32+0000\n"
11"PO-Revision-Date: 2014-01-25 13:32+0000\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-26 07:17+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "鎖定至啟動器"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "從啟動器解除鎖定"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,10 +80,6 @@ msgstr "緊急電話"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "最近的搜尋"
86−
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
89msgid "Hello %1"
85msgid "Hello %1"
@@ -105,7 +101,7 @@ msgstr ""
105msgid "See more"
101msgid "See more"
106msgstr ""
102msgstr ""
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110msgstr ""
106msgstr ""
111
107
@@ -113,6 +109,10 @@ msgstr ""
113msgid "Recent"
109msgid "Recent"
114msgstr ""
110msgstr ""
115
111
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr ""
115+
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118msgstr ""
118msgstr ""
@@ -121,15 +121,15 @@ msgstr ""
121msgid "Less..."
121msgid "Less..."
122msgstr ""
122msgstr ""
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126msgstr "評價"
126msgstr "評價"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130msgstr "新增評論"
130msgstr "新增評論"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "傳送"
134msgstr "傳送"
135
135
@@ -165,11 +165,43 @@ msgstr "顯示密碼"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
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 ""
199+
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "搜尋"
202msgstr "搜尋"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "Please enter %1"
175msgstr "請輸入 %1"
207msgstr "請輸入 %1"
po/zh_TW.po+73−41
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-11 14:59+0200\n"
11−"PO-Revision-Date: 2014-01-16 06:04+0000\n"
11+"PO-Revision-Date: 2014-07-26 16:21+0000\n"
12−"Last-Translator: Henry Yang <henry9846@hotmail.com>\n"
12+"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-27 06:35+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17131)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "鎖定至啟動欄"
23+msgstr "釘住捷徑"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr ""
27+msgstr "取消捷徑釘選"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -32,19 +32,19 @@ msgstr "略過導覽"
32
32
33#: qml/Components/EdgeDemo.qml:113
33#: qml/Components/EdgeDemo.qml:113
34msgid "Right edge"
34msgid "Right edge"
35−msgstr "右方邊界"
35+msgstr "右側邊緣"
36
36
37#: qml/Components/EdgeDemo.qml:114
37#: qml/Components/EdgeDemo.qml:114
38msgid "Try swiping from the right edge to unlock the phone"
38msgid "Try swiping from the right edge to unlock the phone"
39−msgstr "向左滑動以解鎖手機"
39+msgstr "從螢幕右緣向左滑動解鎖手機"
40
40
41#: qml/Components/EdgeDemo.qml:145
41#: qml/Components/EdgeDemo.qml:145
42msgid "Top edge"
42msgid "Top edge"
43−msgstr "頂部邊界"
43+msgstr "上方邊緣"
44
44
45#: qml/Components/EdgeDemo.qml:146
45#: qml/Components/EdgeDemo.qml:146
46msgid "Try swiping from the top edge to access the indicators"
46msgid "Try swiping from the top edge to access the indicators"
47−msgstr "向下滑動以開啟指引"
47+msgstr "從螢幕上緣向下滑動打開指示器"
48
48
49#: qml/Components/EdgeDemo.qml:171
49#: qml/Components/EdgeDemo.qml:171
50msgid "Close"
50msgid "Close"
@@ -52,37 +52,33 @@ msgstr "關閉"
52
52
53#: qml/Components/EdgeDemo.qml:172
53#: qml/Components/EdgeDemo.qml:172
54msgid "Swipe up again to close the settings screen"
54msgid "Swipe up again to close the settings screen"
55−msgstr "再次向上滑動以關財設定頁面"
55+msgstr "再次向上滑動關閉設定畫面"
56
56
57#: qml/Components/EdgeDemo.qml:199
57#: qml/Components/EdgeDemo.qml:199
58msgid "Left edge"
58msgid "Left edge"
59−msgstr "左方邊界"
59+msgstr "左方邊緣"
60
60
61#: qml/Components/EdgeDemo.qml:200
61#: qml/Components/EdgeDemo.qml:200
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
62msgid "Swipe from the left to reveal the launcher for quick access to apps"
63−msgstr ""
63+msgstr "從螢幕左緣向右滑動揭開啟動器可快速存取程式"
64
64
65#: qml/Components/EdgeDemo.qml:227
65#: qml/Components/EdgeDemo.qml:227
66msgid "Well done"
66msgid "Well done"
67−msgstr ""
67+msgstr "做得好"
68
68
69#: qml/Components/EdgeDemo.qml:228
69#: qml/Components/EdgeDemo.qml:228
70msgid ""
70msgid ""
71"You have now mastered the edge gestures and can start using the "
71"You have now mastered the edge gestures and can start using the "
72"phone<br><br>Tap on the screen to start"
72"phone<br><br>Tap on the screen to start"
73−msgstr ""
73+msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
74
74
75#: qml/Components/Lockscreen.qml:214
75#: qml/Components/Lockscreen.qml:214
76msgid "Emergency Call"
76msgid "Emergency Call"
77−msgstr "緊急連絡"
77+msgstr "緊急通話"
78
78
79#: qml/Components/Lockscreen.qml:231
79#: qml/Components/Lockscreen.qml:231
80msgid "OK"
80msgid "OK"
81−msgstr ""
81+msgstr "確定"
82−
83−#: qml/Components/PageHeader.qml:365
84−msgid "Recent searches"
85−msgstr "最近搜尋"
86
82
87#: qml/Components/PassphraseLockscreen.qml:60
83#: qml/Components/PassphraseLockscreen.qml:60
88#, qt-format
84#, qt-format
@@ -95,47 +91,51 @@ msgstr "您好"
95
91
96#: qml/Components/PinLockscreen.qml:198
92#: qml/Components/PinLockscreen.qml:198
97msgid "CANCEL"
93msgid "CANCEL"
98−msgstr ""
94+msgstr "取消"
99
95
100#: qml/Components/PinLockscreen.qml:216
96#: qml/Components/PinLockscreen.qml:216
101msgid "DONE"
97msgid "DONE"
102−msgstr ""
98+msgstr "完成"
103
99
104#: qml/Components/SeeMore.qml:35
100#: qml/Components/SeeMore.qml:35
105msgid "See more"
101msgid "See more"
106−msgstr ""
102+msgstr "查看更多"
107
103
108−#: qml/Components/SeeMore.qml:58
104+#: qml/Components/SeeMore.qml:58 qml/Dash/GenericScopeView.qml:330
109msgid "See less"
105msgid "See less"
110−msgstr ""
106+msgstr "縮減查看"
111
107
112#: qml/Dash/DashApps.qml:37
108#: qml/Dash/DashApps.qml:37
113msgid "Recent"
109msgid "Recent"
114−msgstr ""
110+msgstr "最近"
111+
112+#: qml/Dash/GenericScopeView.qml:330
113+msgid "See all"
114+msgstr "查看全部"
115
115
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
116#: qml/Dash/Previews/PreviewActionCombo.qml:34
117msgid "More..."
117msgid "More..."
118−msgstr ""
118+msgstr "更多…"
119
119
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
120#: qml/Dash/Previews/PreviewActionCombo.qml:34
121msgid "Less..."
121msgid "Less..."
122−msgstr ""
122+msgstr "縮減…"
123
123
124−#: qml/Dash/Previews/PreviewRatingInput.qml:82
124+#: qml/Dash/Previews/PreviewRatingInput.qml:81
125msgid "Rate this"
125msgid "Rate this"
126−msgstr "對此評比"
126+msgstr "給予評等"
127
127
128−#: qml/Dash/Previews/PreviewRatingInput.qml:128
128+#: qml/Dash/Previews/PreviewRatingInput.qml:126
129msgid "Add a review"
129msgid "Add a review"
130−msgstr "新增回覆"
130+msgstr "新增評論"
131
131
132−#: qml/Dash/Previews/PreviewRatingInput.qml:168
132+#: qml/Dash/Previews/PreviewRatingInput.qml:166
133msgid "Send"
133msgid "Send"
134msgstr "發送"
134msgstr "發送"
135
135
136#: qml/Greeter/Greeter.qml:157
136#: qml/Greeter/Greeter.qml:157
137msgid "Swipe to unlock"
137msgid "Swipe to unlock"
138−msgstr ""
138+msgstr "滑開解除鎖定"
139
139
140#: qml/Hud/HudParametrizedActionsPage.qml:132
140#: qml/Hud/HudParametrizedActionsPage.qml:132
141msgid "Confirm"
141msgid "Confirm"
@@ -163,13 +163,45 @@ msgstr "顯示密碼"
163
163
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
165msgid "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 "失敗,輕觸可重試"
167
199
168#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
201msgid "Search"
170msgstr "搜尋"
202msgstr "搜尋"
171
203
172−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
173#, qt-format
205#, qt-format
174msgid "Please enter %1"
206msgid "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 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19
19
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+
20Item {
27Item {
28+ /// True if this item is currently "focused" in the carousel.
21 property bool explicitlyScaled
29 property bool explicitlyScaled
30+
31+ /// Model index for this delegate.
32+ property int index
33+
34+ /// Model data for this delegate.
22 property var model
35 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
23}
42}
qml/Components/Carousel.qml+5−14
@@ -52,16 +52,6 @@ Item {
52 /// exposes the distance to the next row (only one row in carousel, so it's the topMargins)
52 /// exposes the distance to the next row (only one row in carousel, so it's the topMargins)
53 readonly property alias verticalSpacing: listView.verticalMargin
53 readonly property alias verticalSpacing: listView.verticalMargin
54
54
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−
65 implicitHeight: listView.tileHeight * selectedItemScaleFactor
55 implicitHeight: listView.tileHeight * selectedItemScaleFactor
66 opacity: listView.highlightIndex === -1 ? 1 : 0.6
56 opacity: listView.highlightIndex === -1 ? 1 : 0.6
67
57
@@ -167,7 +157,7 @@ Item {
167 /* We're clicking the selected item and
157 /* We're clicking the selected item and
168 we're in the neighbourhood of radius 1 pixel from it.
158 we're in the neighbourhood of radius 1 pixel from it.
169 Let's emit the clicked signal. */
159 Let's emit the clicked signal. */
170− carousel.clicked(index, delegateItem.y)
160+ delegateItem.clicked()
171 return
161 return
172 }
162 }
173
163
@@ -185,7 +175,7 @@ Item {
185 /* We're pressAndHold the selected item and
175 /* We're pressAndHold the selected item and
186 we're in the neighbourhood of radius 1 pixel from it.
176 we're in the neighbourhood of radius 1 pixel from it.
187 Let's emit the pressAndHold signal. */
177 Let's emit the pressAndHold signal. */
188− carousel.pressAndHold(index, delegateItem.y);
178+ delegateItem.pressAndHold();
189 return;
179 return;
190 }
180 }
191
181
@@ -316,8 +306,9 @@ Item {
316 }
306 }
317
307
318 onLoaded: {
308 onLoaded: {
319− item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; })
309+ item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; });
310+ item.index = Qt.binding(function() { return index; });
320− item.model = Qt.binding(function() { return model; })
311+ item.model = Qt.binding(function() { return model; });
321 }
312 }
322
313
323 MouseArea {
314 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 {
117 dragging = false
117 dragging = false
118 __pressedPosition = Qt.point(mouse.x, mouse.y)
118 __pressedPosition = Qt.point(mouse.x, mouse.y)
119 }
119 }
120+
121+ onCanceled: {
122+ dragging = false
123+ }
120}
124}
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 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013,2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
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
5 * it under the terms of the GNU General Public License as published by
@@ -15,53 +15,45 @@
15 */
15 */
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18+import QtQuick.Layouts 1.1
18import Ubuntu.Components 0.1
19import Ubuntu.Components 0.1
19
20
20Item {
21Item {
21− /*!
22− \preliminary
23− The text that is shown as the header text.
24− \qmlproperty string text
25− */
26 property alias text: label.text
22 property alias text: label.text
27− property alias image: image.source
23+ property alias color: label.color
24+ property alias iconName: icon.name
28
25
29 signal clicked(variant mouse)
26 signal clicked(variant mouse)
30
27
31 height: units.gu(5)
28 height: units.gu(5)
32
29
33− Item {
30+ RowLayout {
31+ spacing: units.gu(.5)
34 anchors {
32 anchors {
35 left: parent.left
33 left: parent.left
36 right: parent.right
34 right: parent.right
35+ verticalCenter: parent.verticalCenter
37− rightMargin: units.gu(0.5)
36+ margins: units.gu(1)
38− top: parent.top
39− bottom: parent.bottom
40 }
37 }
41
38
42 Label {
39 Label {
43 id: label
40 id: label
44− anchors {
41+ Layout.fillWidth: true
45− left: parent.left
46− leftMargin: units.gu(2)
47− verticalCenter: parent.verticalCenter
48− }
49
42
50− color: "grey" // TODO karni: Update Ubuntu.Compoonents.Themes.Palette.
51 font.family: "Ubuntu"
43 font.family: "Ubuntu"
52 fontSize: "medium"
44 fontSize: "medium"
53 elide: Text.ElideRight
45 elide: Text.ElideRight
46+ maximumLineCount: 1
54 textFormat: Text.PlainText
47 textFormat: Text.PlainText
55− width: parent.width - image.width - image.leftMargin - anchors.leftMargin
48+ width: Math.min(parent.width - units.gu(4), implicitWidth)
56 }
49 }
57
50
58− Image {
51+ Icon {
59− id: image
52+ id: icon
60− readonly property double leftMargin: units.gu(1)
53+ visible: name != ""
61− x: label.x + label.contentWidth + leftMargin
54+ height: units.gu(2)
62− anchors {
55+ width: height
63− verticalCenter: parent.verticalCenter
56+ color: label.color
64− }
65 }
57 }
66 }
58 }
67
59
qml/Components/Lockscreen.qml+17−5
@@ -186,6 +186,17 @@ Showable {
186 }
186 }
187
187
188 Column {
188 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+
189 anchors {
200 anchors {
190 left: parent.left
201 left: parent.left
191 bottom: parent.bottom
202 bottom: parent.bottom
@@ -203,11 +214,6 @@ Showable {
203 name: "phone-app-call-symbolic"
214 name: "phone-app-call-symbolic"
204 color: "#f3f3e7"
215 color: "#f3f3e7"
205 opacity: 0.6
216 opacity: 0.6
206−
207− MouseArea {
208− anchors.fill: parent
209− onClicked: root.emergencyCall()
210− }
211 }
217 }
212
218
213 Label {
219 Label {
@@ -219,6 +225,12 @@ Showable {
219 }
225 }
220 }
226 }
221
227
228+ MouseArea {
229+ anchors.fill: emergencyCallColumn
230+ onClicked: root.emergencyCall()
231+ enabled: emergencyCallColumn.visible
232+ }
233+
222 Component {
234 Component {
223 id: infoPopupComponent
235 id: infoPopupComponent
224 Dialog {
236 Dialog {
qml/Components/PageHeader.qml+228−313
@@ -14,386 +14,301 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0
17+import QtQuick 2.2
18+import Ubuntu.Components 1.1
18−import Ubuntu.Components 0.1
19+import Ubuntu.Components.Themes.Ambiance 1.1
19−import Ubuntu.Components.Popups 0.1
20+import Ubuntu.Components.Popups 1.0
20−import Ubuntu.Components.ListItems 0.1 as ListItem
21+import Ubuntu.Components.ListItems 1.0
21−import Unity 0.2
22+import "SearchHistoryModel"
22
23
23Item {
24Item {
24 id: root
25 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+
25 property bool searchEntryEnabled: false
32 property bool searchEntryEnabled: false
33+ property ListModel searchHistory: SearchHistoryModel
26− property alias searchQuery: searchField.text
34+ property alias searchQuery: searchTextField.text
27− property ListModel searchHistory
35+ property bool searchInProgress: false
28− property var scope: null
36+
29− property alias childItem: itemContainer.children
30 property alias bottomItem: bottomContainer.children
37 property alias bottomItem: bottomContainer.children
31− property alias showBackButton: backButton.visible
32
38
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
34
43
35− height: header.height + units.gu(2) + bottomContainer.height
44+ signal backClicked()
36− implicitHeight: header.height + units.gu(2) + bottomContainer.height
45+
46+ onScopeStyleChanged: refreshLogo()
37
47
38 function triggerSearch() {
48 function triggerSearch() {
39− if (searchEntryEnabled) searchField.forceActiveFocus()
49+ if (searchEntryEnabled) {
50+ headerContainer.showSearch = true;
51+ searchTextField.forceActiveFocus();
52+ }
40 }
53 }
41
54
42− function resetSearch() {
55+ function resetSearch(keepFocus) {
43− if (!searchHistory) return;
56+ if (searchHistory) {
44−
45− searchHistory.addQuery(searchField.text);
57+ searchHistory.addQuery(searchTextField.text);
58+ }
59+ if (!keepFocus) {
46− unfocus();
60+ unfocus();
47− searchField.text = "";
61+ }
62+ searchTextField.text = "";
63+ if (headerContainer.popover != null) {
64+ PopupUtils.close(headerContainer.popover);
65+ }
48 }
66 }
49
67
50 function unfocus() {
68 function unfocus() {
51− searchField.focus = false;
69+ searchTextField.focus = false;
70+ if (!searchTextField.text) {
71+ headerContainer.showSearch = false;
52− }
72+ }
53−
54− Connections {
55− target: greeter
56− onShownChanged: if (shown) resetSearch()
57 }
73 }
58
74
59− Flickable {
75+ function openSearchHistory() {
60− id: header
76+ if (openSearchAnimation.running) {
61− anchors {
77+ openSearchAnimation.openSearchHistory = true;
62− left: parent.left
78+ } else if (root.searchHistory.count > 0 && headerContainer.popover == null) {
63− right: parent.right
79+ headerContainer.popover = PopupUtils.open(popoverComponent, searchTextField,
64− top: parent.top
80+ {
81+ "contentWidth": searchTextField.width,
82+ "edgeMargins": units.gu(1)
83+ }
84+ );
65 }
85 }
66− height: units.gu(6.5)
86+ }
67
87
68− interactive: false
88+ function refreshLogo() {
69− contentHeight: headerContainer.height
89+ if (scopeStyle ? scopeStyle.headerLogo != "" : false) {
70− clip: true
90+ header.contents = imageComponent.createObject();
71−
91+ } else if (header.contents) {
72− contentY: searchField.activeFocus || searchField.text != "" ? searchContainer.y : headerContainer.y
92+ header.contents.destroy();
73−
93+ header.contents = null;
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− }
93 }
94 }
95+ }
94
96
95− // FIXME this could potentially be simplified to avoid all the containers
97+ Connections {
96− Item {
98+ target: root.scopeStyle
97− id: headerContainer
99+ onHeaderLogoChanged: root.refreshLogo()
100+ }
98
101
99− anchors {
102+ InverseMouseArea {
100− left: backButton.right
103+ anchors { fill: parent; margins: units.gu(1); bottomMargin: units.gu(3) + bottomContainer.height }
101− right: parent.right
104+ visible: headerContainer.showSearch
105+ onPressed: {
106+ if (headerContainer.popover) {
107+ PopupUtils.close(headerContainer.popover);
102 }
108 }
103− height: childrenRect.height
109+ if (!searchTextField.text) {
104−
110+ headerContainer.showSearch = false;
105− Item {
106− id: itemContainer
107−
108− width: searchContainer.narrowMode ? header.width : header.width - searchContainer.width
109− height: header.height
110 }
111 }
112+ searchTextField.focus = false;
113+ mouse.accepted = false;
114+ }
115+ }
111
116
112− Item {
117+ Flickable {
113− id: searchContainer
118+ id: headerContainer
114− objectName: "searchContainer"
119+ objectName: "headerContainer"
115−
120+ clip: openSearchAnimation.running
116− visible: searchEntryEnabled
121+ anchors { left: parent.left; top: parent.top; right: parent.right }
117− property bool popoverShouldOpen: false
122+ height: units.gu(6.5)
118− property bool popoverShouldClose: false
123+ contentHeight: headersColumn.height
119−
124+ interactive: false
120− property bool narrowMode: parent.width < units.gu(80)
125+ contentY: showSearch ? 0 : height
121
126
122− property bool active: searchField.text != "" || searchField.activeFocus
127+ property bool showSearch: false
123− property var popover: null
128+ property var popover: null
124
129
125− anchors.right: headerContainer.right
130+ Background {
126− height: header.height
131+ objectName: "headerBackground"
132+ style: scopeStyle.headerBackground
133+ }
127
134
128− state:
135+ Behavior on contentY {
129− if (active && narrowMode) "narrowActive"
136+ UbuntuNumberAnimation {
130− else if (!active && narrowMode) "narrowInactive"
137+ id: openSearchAnimation
131− else if (active && !narrowMode) "active"
138+ property bool openSearchHistory: false
132− else if (!active && !narrowMode) "inactive"
133
139
134− onStateChanged: {
140+ onRunningChanged: {
135− if (state == "active" || state == "narrowActive") {
141+ if (!running && openSearchAnimation.openSearchHistory) {
136− popoverShouldOpen = true;
142+ openSearchAnimation.openSearchHistory = false;
137− popoverShouldClose = false;
143+ root.openSearchHistory();
138− } else {
139− popoverShouldOpen = false;
140− popoverShouldClose = true;
141 }
144 }
142 }
145 }
146+ }
147+ }
143
148
144− function openPopover() {
149+ Column {
145− if (searchHistory.count > 0) {
150+ id: headersColumn
146− searchContainer.popover = PopupUtils.open(popoverComponent, pointerPositioner,
151+ anchors { left: parent.left; right: parent.right }
147− {
152+
148− "contentWidth": searchField.width,
153+ PageHeadStyle {
149− "edgeMargins": units.gu(1)
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;
150− }
169+ }
151− )
152 }
170 }
153− popoverShouldOpen = false;
154− popoverShouldClose = false;
155 }
171 }
156−
172+ property var contents: TextField {
157− function closePopover() {
173+ id: searchTextField
158− if (searchContainer.popover) {
174+ objectName: "searchTextField"
159− PopupUtils.close(searchContainer.popover);
175+ hasClearButton: false
160− searchContainer.popover = null;
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)
161 }
182 }
162− popoverShouldOpen = false;
163− popoverShouldClose = false;
164− }
165−
166− onActiveFocusChanged: if (!activeFocus) { searchHistory.addQuery(searchField.text) }
167−
168− TextField {
169− id: searchField
170
183
171− anchors.fill: parent
184+ secondaryItem: AbstractButton {
172− anchors.margins: units.gu(1)
185+ height: searchTextField.height
173−
186+ width: height
174− inputMethodHints: Qt.ImhNoPredictiveText
187+ enabled: searchTextField.text.length > 0
175− hasClearButton: false
176
188
177− primaryItem: AbstractButton {
189+ Image {
178− enabled: searchField.text != "" && !searchIndicator.running
190+ objectName: "clearIcon"
179− onClicked: {
191+ anchors.fill: parent
180− if (searchField.text != "") {
192+ anchors.margins: units.gu(.75)
181− searchHistory.addQuery(searchField.text)
193+ source: "image://theme/clear"
182− searchField.text = ""
194+ opacity: searchTextField.text.length > 0 && !searchActivityIndicator.running
195+ visible: opacity > 0
196+ Behavior on opacity {
197+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
183 }
198 }
184 }
199 }
185− height: parent.height
186− width: height
187
200
188 ActivityIndicator {
201 ActivityIndicator {
189− id: searchIndicator
202+ id: searchActivityIndicator
190 objectName: "searchIndicator"
203 objectName: "searchIndicator"
191−
192− anchors {
204+ anchors.fill: parent
193− verticalCenter: parent.verticalCenter
205+ anchors.margins: units.gu(.75)
194− left: parent.left
206+ running: root.searchInProgress
195− leftMargin: units.gu(0.5)
207+ opacity: running ? 1 : 0
208+ Behavior on opacity {
209+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
196 }
210 }
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
212 }
211 }
213
212
214− Item {
213+ onClicked: {
215− id: pointerPositioner
214+ root.resetSearch(true);
216− anchors.left: parent.right
215+ root.openSearchHistory();
217− anchors.leftMargin: units.gu(0.5)
218− anchors.top: parent.bottom
219 }
216 }
220 }
217 }
221
218
222− onTextChanged: {
223− if (text != "") searchContainer.closePopover()
224− else if (text == "" && activeFocus) searchContainer.openPopover()
225− }
226−
227 onActiveFocusChanged: {
219 onActiveFocusChanged: {
228− if (!activeFocus) searchContainer.closePopover()
220+ if (activeFocus) {
221+ root.openSearchHistory();
222+ }
229 }
223 }
224+ }
225+ }
230
226
231− states: [
227+ PageHeadStyle {
232− State {
228+ id: header
233− name: "searching"
229+ objectName: "innerPageHeader"
234− when: scope && scope.searchInProgress
230+ anchors { left: parent.left; right: parent.right }
235− PropertyChanges { target: searchIndicator; running: true; opacity: 1 }
231+ height: headerContainer.height
236− PropertyChanges { target: primaryImage; opacity: 0 }
232+ contentHeight: height
237− },
233+ opacity: headerContainer.clip || !headerContainer.showSearch ? 1 : 0 // setting visible false cause column to relayout
238− State {
234+ separatorSource: ""
239− name: "idle"
235+ textColor: root.scopeStyle ? root.scopeStyle.headerForeground : "grey"
240− when: !scope || !scope.searchInProgress
236+ property var styledItem: header
241− PropertyChanges { target: searchIndicator; opacity: 0 }
237+ property string title: root.title
242− PropertyChanges { target: primaryImage; opacity: 1 }
238+ property var config: PageHeadConfiguration {
239+ backAction: Action {
240+ iconName: "back"
241+ visible: root.showBackButton
242+ onTriggered: {
243+ root.backClicked();
243 }
244 }
244− ]
245+ }
245
246
246− transitions: [
247+ actions: [
247− Transition {
248+ Action {
248− to: "searching"
249+ iconName: "search"
249− reversible: true
250+ visible: root.searchEntryEnabled
250− SequentialAnimation {
251+ onTriggered: {
251− NumberAnimation { target: primaryImage; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
252+ headerContainer.showSearch = true;
252− NumberAnimation { target: searchIndicator; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
253+ searchTextField.forceActiveFocus();
253 }
254 }
254 }
255 }
255 ]
256 ]
256 }
257 }
257
258
258− states: [
259+ property var contents: null
259− State {
260+ Component.onCompleted: root.refreshLogo()
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− ]
333
261
334 Component {
262 Component {
335− id: popoverComponent
263+ id: imageComponent
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()
350
264
351− Image {
265+ Item {
352− anchors.centerIn: parent
266+ anchors { fill: parent; topMargin: units.gu(1); bottomMargin: units.gu(1) }
353− width: units.gu(2)
267+ clip: true
354− height: units.gu(2)
268+ Image {
355− source: "../Dash/graphics/icon_listview_clear.png"
269+ objectName: "titleImage"
356− }
270+ anchors.fill: parent
271+ source: root.scopeStyle ? root.scopeStyle.headerLogo : ""
272+ fillMode: Image.PreserveAspectFit
273+ horizontalAlignment: Image.AlignLeft
274+ sourceSize.height: height
357 }
275 }
276+ }
277+ }
278+ }
279+ }
280+ }
358
281
359− Column {
282+ Component {
360− anchors {
283+ id: popoverComponent
361− top: parent.top
284+ Popover {
362− left: parent.left
285+ id: popover
363− right: parent.right
286+ autoClose: false
364− }
365−
366− ListItem.Standard { enabled: false; text: i18n.tr("Recent searches") }
367
287
368− Repeater {
288+ Component.onDestruction: {
369− id: recentSearches
289+ headerContainer.popover = null;
370− model: searchHistory
290+ }
371
291
372− delegate: ListItem.Standard {
292+ Column {
373− showDivider: index < recentSearches.count - 1
293+ anchors {
374− text: query
294+ top: parent.top
375− onClicked: {
295+ left: parent.left
376− searchHistory.addQuery(text)
296+ right: parent.right
377− searchField.text = text
378− }
379− }
380− }
381− }
382− }
383 }
297 }
384
298
385− InverseMouseArea {
299+ Repeater {
386− enabled: searchField.activeFocus
300+ id: recentSearches
301+ model: searchHistory
387
302
388− anchors {
303+ delegate: Standard {
389− top: parent.top
304+ showDivider: index < recentSearches.count - 1
390− left: parent.left
305+ text: query
391− right: parent.right
306+ onClicked: {
307+ searchHistory.addQuery(text);
308+ searchTextField.text = text;
309+ PopupUtils.close(popover);
310+ }
392 }
311 }
393−
394− height: searchContainer.popover ? parent.height + searchContainer.popover.contentHeight + units.gu(2) : parent.height
395−
396− onPressed: searchField.focus = false
397 }
312 }
398 }
313 }
399 }
314 }
@@ -402,7 +317,7 @@ Item {
402 BorderImage {
317 BorderImage {
403 id: bottomBorder
318 id: bottomBorder
404 anchors {
319 anchors {
405− top: header.bottom
320+ top: headerContainer.bottom
406 left: parent.left
321 left: parent.left
407 right: parent.right
322 right: parent.right
408 bottom: bottomContainer.top
323 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 {
44 property alias displayMarginBeginning: gridView.displayMarginBeginning
44 property alias displayMarginBeginning: gridView.displayMarginBeginning
45 property alias displayMarginEnd: gridView.displayMarginEnd
45 property alias displayMarginEnd: gridView.displayMarginEnd
46 property alias highlightIndex: gridView.highlightIndex
46 property alias highlightIndex: gridView.highlightIndex
47+ property alias cacheBuffer: gridView.cacheBuffer
47 readonly property alias currentItem: gridView.currentItem
48 readonly property alias currentItem: gridView.currentItem
48
49
49 function contentHeightForRows(rows) {
50 function contentHeightForRows(rows) {
50− return rows * cellHeight + verticalSpacing
51+ return rows * cellHeight;
51 }
52 }
52
53
53 GridView {
54 GridView {
qml/Components/SearchHistoryModel.qml → qml/Components/SearchHistoryModel/SearchHistoryModel.qmlrenamed+1
@@ -14,6 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17+pragma Singleton
17import QtQuick 2.0
18import QtQuick 2.0
18
19
19// TODO sanitize input, move to persistent storage
20// 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 {
29 signal requestedActivationMode()
29 signal requestedActivationMode()
30 signal requestedTerminationMode()
30 signal requestedTerminationMode()
31
31
32− // Was: childrenRect.height
32+ width: thumbnail.width
33− // To avoid "binding loop" warning
34− height: shapedApplicationImage.height + labelContainer.height
33+ height: thumbnail.height + labelContainer.height
35−
36− width: shapedApplicationImage.width <= units.gu(11) ? units.gu(11) : height
37
34
38 property bool terminationModeEnabled: false
35 property bool terminationModeEnabled: false
39
36
@@ -50,42 +47,53 @@ AbstractButton {
50 }
47 }
51 }
48 }
52
49
50+ Item {
51+ id: thumbnail
52+
53+ width: shapedApplicationImage.width
54+ height: shapedApplicationImage.height
55+
53− UbuntuShape {
56+ UbuntuShape {
54− id: shapedApplicationImage
57+ id: shapedApplicationImage
55− anchors { top: parent.top; horizontalCenter: parent.horizontalCenter }
58+ x: 0
56−
59+ y: 0
57− height: units.gu(17)
60+ height: applicationImage.height
58− width: applicationImage.width
61+ width: applicationImage.width
59− radius: "medium"
62+ radius: "medium"
60−
63+
61− image: Image {
64+ image: Image {
62− id: applicationImage
65+ id: applicationImage
63− source: application.screenshot
66+ source: application.screenshot
64− // height : width = ss.height : ss.width
67+ // height : width = ss.height : ss.width
65− height: shapedApplicationImage.height
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)
66− fillMode: Image.PreserveAspectCrop
74+ fillMode: Image.Stretch
67− width: Math.min(height, height * sourceSize.width / sourceSize.height)
68− }
75+ }
69
76
70− }
77+ }
71
78
72− UbuntuShape {
79+ UbuntuShape {
73− id: borderPressed
80+ id: borderPressed
74
81
75− anchors.fill: shapedApplicationImage
82+ anchors.fill: shapedApplicationImage
76− radius: "medium"
83+ radius: "medium"
77− borderSource: "radius_pressed.sci"
84+ borderSource: "radius_pressed.sci"
78− opacity: root.pressed ? 1.0 : 0.0
85+ opacity: root.pressed ? 1.0 : 0.0
79− Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
86+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
87+ }
80 }
88 }
81
89
82 // FIXME: label code duplicated with Tile
90 // FIXME: label code duplicated with Tile
83 Item {
91 Item {
84 id: labelContainer
92 id: labelContainer
85 anchors {
93 anchors {
86− left: parent.left
94+ left: thumbnail.left
87− right: parent.right
95+ right: thumbnail.right
88− top: shapedApplicationImage.bottom
96+ top: thumbnail.bottom
89 }
97 }
90 height: units.gu(2)
98 height: units.gu(2)
91
99
@@ -110,9 +118,9 @@ AbstractButton {
110 CloseIcon {
118 CloseIcon {
111 objectName: "closeIcon " + model.name
119 objectName: "closeIcon " + model.name
112 anchors {
120 anchors {
113− left: shapedApplicationImage.left
121+ left: thumbnail.left
114 leftMargin: -units.gu(1)
122 leftMargin: -units.gu(1)
115− top: parent.top
123+ top: thumbnail.top
116 topMargin: -units.gu(1)
124 topMargin: -units.gu(1)
117 }
125 }
118 height: units.gu(6)
126 height: units.gu(6)
qml/Dash/CardCarousel.qml+9−11
@@ -21,13 +21,8 @@ import "../Components"
21DashRenderer {
21DashRenderer {
22 id: cardCarousel
22 id: cardCarousel
23
23
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
31
26
32 Carousel {
27 Carousel {
33 id: carousel
28 id: carousel
@@ -40,9 +35,6 @@ DashRenderer {
40 cacheBuffer: 1404 // 18px * 13gu * 6
35 cacheBuffer: 1404 // 18px * 13gu * 6
41 model: cardCarousel.model
36 model: cardCarousel.model
42
37
43− onClicked: cardCarousel.clicked(index, null)
44− onPressAndHold: cardCarousel.pressAndHold(index)
45−
46 property real fontScale: 1 / selectedItemScaleFactor
38 property real fontScale: 1 / selectedItemScaleFactor
47 property real headerHeight: cardTool.headerHeight / selectedItemScaleFactor
39 property real headerHeight: cardTool.headerHeight / selectedItemScaleFactor
48
40
@@ -51,11 +43,16 @@ DashRenderer {
51
43
52 property bool explicitlyScaled
44 property bool explicitlyScaled
53 property var model
45 property var model
46+ property int index
54 enabled: false
47 enabled: false
55
48
49+ objectName: "carouselDelegate" + index
50+
51+ function clicked() { cardCarousel.clicked(index, model.result) }
52+ function pressAndHold() { cardCarousel.pressAndHold(index, model.result) }
53+
56 sourceComponent: cardTool.cardComponent
54 sourceComponent: cardTool.cardComponent
57 onLoaded: {
55 onLoaded: {
58− item.objectName = "carouselDelegate" + index;
59 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
56 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
60 item.height = Qt.binding(function() { return cardTool.cardHeight; });
57 item.height = Qt.binding(function() { return cardTool.cardHeight; });
61 item.cardData = Qt.binding(function() { return model; });
58 item.cardData = Qt.binding(function() { return model; });
@@ -64,6 +61,7 @@ DashRenderer {
64 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
61 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
65 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
62 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
66 item.artShapeBorderSource = "none";
63 item.artShapeBorderSource = "none";
64+ item.scopeStyle = cardCarousel.scopeStyle;
67 }
65 }
68
66
69 BorderImage {
67 BorderImage {
qml/Dash/CardFilterGrid.qml → qml/Dash/CardGrid.qmlrenamed+22−21
@@ -18,33 +18,33 @@ import QtQuick 2.0
18import "../Components"
18import "../Components"
19
19
20DashRenderer {
20DashRenderer {
21− id: genericFilterGrid
21+ id: root
22
22
23− expandable: filterGrid.expandable
23+ readonly property int collapsedRows: {
24− collapsedHeight: filterGrid.collapsedHeight
24+ if (!cardTool || !cardTool.template || typeof cardTool.template["collapsed-rows"] != "number") return 2;
25− uncollapsedHeight: filterGrid.uncollapsedHeight
25+ return cardTool.template["collapsed-rows"];
26− originY: filterGrid.originY
27− height: filterGrid.height
28− filtered: filterGrid.filtered
29−
30− function setFilter(filter, animate) {
31− filterGrid.setFilter(filter, animate)
32 }
26 }
33
27
34− FilterGrid {
28+ expandedHeight: grid.totalContentHeight
35− id: filterGrid
29+ collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows), expandedHeight)
36− width: genericFilterGrid.width
30+ collapsedItemCount: collapsedRows * grid.columns
31+ originY: grid.originY
32+
33+ ResponsiveGridView {
34+ id: grid
35+ anchors.fill: parent
37 minimumHorizontalSpacing: units.gu(1)
36 minimumHorizontalSpacing: units.gu(1)
38 delegateWidth: cardTool.cardWidth
37 delegateWidth: cardTool.cardWidth
39 delegateHeight: cardTool.cardHeight
38 delegateHeight: cardTool.cardHeight
40 verticalSpacing: units.gu(1)
39 verticalSpacing: units.gu(1)
41− model: genericFilterGrid.model
40+ model: root.model
42− collapsedRowCount: Math.min(2, cardTool && cardTool.template && cardTool.template["collapsed-rows"] || 2)
41+ displayMarginBeginning: root.displayMarginBeginning
43− displayMarginBeginning: genericFilterGrid.displayMarginBeginning
42+ displayMarginEnd: root.displayMarginEnd
44− displayMarginEnd: genericFilterGrid.displayMarginEnd
43+ cacheBuffer: 0
44+ interactive: false
45 delegate: Item {
45 delegate: Item {
46− width: filterGrid.cellWidth
46+ width: grid.cellWidth
47− height: filterGrid.cellHeight
47+ height: grid.cellHeight
48 Loader {
48 Loader {
49 id: loader
49 id: loader
50 sourceComponent: cardTool.cardComponent
50 sourceComponent: cardTool.cardComponent
@@ -58,11 +58,12 @@ DashRenderer {
58 item.template = Qt.binding(function() { return cardTool.template; });
58 item.template = Qt.binding(function() { return cardTool.template; });
59 item.components = Qt.binding(function() { return cardTool.components; });
59 item.components = Qt.binding(function() { return cardTool.components; });
60 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
60 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
61+ item.scopeStyle = root.scopeStyle;
61 }
62 }
62 Connections {
63 Connections {
63 target: loader.item
64 target: loader.item
64− onClicked: genericFilterGrid.clicked(index, result)
65+ onClicked: root.clicked(index, result)
65− onPressAndHold: genericFilterGrid.pressAndHold(index)
66+ onPressAndHold: root.pressAndHold(index)
66 }
67 }
67 }
68 }
68 }
69 }
qml/Dash/CardVerticalJournal.qml+5−22
@@ -23,33 +23,15 @@ DashRenderer {
23
23
24 readonly property double collapseLimit: units.gu(35)
24 readonly property double collapseLimit: units.gu(35)
25
25
26− uncollapsedHeight: cardVerticalJournal.implicitHeight
26+ expandedHeight: Math.max(cardVerticalJournal.implicitHeight, minHeight)
27− collapsedHeight: Math.min(collapseLimit, cardVerticalJournal.implicitHeight)
27+ collapsedHeight: Math.max(Math.min(collapseLimit, cardVerticalJournal.implicitHeight), minHeight)
28− expandable: uncollapsedHeight > collapseLimit
28+ // TODO: implement collapsedItemCount
29
29
30 // This minHeight is used as bootstrapper for the height. Vertical Journal
30 // This minHeight is used as bootstrapper for the height. Vertical Journal
31 // is special by the fact that it doesn't know how to calculate its implicit height unless we give it
31 // is special by the fact that it doesn't know how to calculate its implicit height unless we give it
32 // enough height that it can start creating its children so we make sure it has enough height for that
32 // enough height that it can start creating its children so we make sure it has enough height for that
33 // in case the model is non empty
33 // in case the model is non empty
34− readonly property double minHeight: root.model.count > 1 ? cardVerticalJournal.rowSpacing + 1 : 0
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− }
53
35
54 ResponsiveVerticalJournal {
36 ResponsiveVerticalJournal {
55 id: cardVerticalJournal
37 id: cardVerticalJournal
@@ -75,6 +57,7 @@ DashRenderer {
75 item.template = Qt.binding(function() { return cardTool.template; });
57 item.template = Qt.binding(function() { return cardTool.template; });
76 item.components = Qt.binding(function() { return cardTool.components; });
58 item.components = Qt.binding(function() { return cardTool.components; });
77 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
59 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
60+ item.scopeStyle = root.scopeStyle;
78 }
61 }
79 Connections {
62 Connections {
80 target: loader.item
63 target: loader.item
qml/Dash/Dash.qml+14−15
@@ -26,9 +26,6 @@ Showable {
26
26
27 visible: shown
27 visible: shown
28
28
29− property ListModel searchHistory: SearchHistoryModel {}
30− property bool searchable: !dashContent.previewOpen && !scopeItem.previewOpen
31−
32 property string showScopeOnLoaded: "clickscope"
29 property string showScopeOnLoaded: "clickscope"
33 property real contentScale: 1.0
30 property real contentScale: 1.0
34
31
@@ -76,7 +73,6 @@ Showable {
76 height: parent.height
73 height: parent.height
77 model: filteredScopes
74 model: filteredScopes
78 scopes: scopes
75 scopes: scopes
79− searchHistory: dash.searchHistory
80 visible: x != -width
76 visible: x != -width
81 onGotoScope: {
77 onGotoScope: {
82 dash.setCurrentScope(scopeId, true, false);
78 dash.setCurrentScope(scopeId, true, false);
@@ -105,26 +101,29 @@ Showable {
105 }
101 }
106 }
102 }
107
103
108− ScopeItem {
104+ GenericScopeView {
109 id: scopeItem
105 id: scopeItem
110 anchors.left: dashContent.right
106 anchors.left: dashContent.right
111 width: parent.width
107 width: parent.width
112 height: parent.height
108 height: parent.height
113− searchHistory: dash.searchHistory
114 scale: dash.contentScale
109 scale: dash.contentScale
115 clip: scale != 1.0
110 clip: scale != 1.0
116 visible: scope != null
111 visible: scope != null
117− onBack: {
112+ hasBackAction: true
113+ isCurrent: visible
114+ onBackClicked: {
118 closeOverlayScope();
115 closeOverlayScope();
119− }
116+ closePreview();
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");
127 }
117 }
128
118
119+ Connections {
120+ target: scopeItem.scope
121+ onGotoScope: {
122+ dashContent.gotoScope(scopeId);
123+ }
124+ onOpenScope: {
125+ dashContent.openScope(scope);
126+ }
127+ }
129 }
128 }
130}
129}
qml/Dash/DashContent.qml+11−84
@@ -26,13 +26,11 @@ Item {
26 property var model: null
26 property var model: null
27 property var scopes: null
27 property var scopes: null
28 readonly property alias currentIndex: dashContentList.currentIndex
28 readonly property alias currentIndex: dashContentList.currentIndex
29− property alias previewOpen: previewListView.open
30−
31− property ListModel searchHistory
32
29
33 signal scopeLoaded(string scopeId)
30 signal scopeLoaded(string scopeId)
34 signal gotoScope(string scopeId)
31 signal gotoScope(string scopeId)
35 signal openScope(var scope)
32 signal openScope(var scope)
33+ signal closePreview()
36
34
37 // If we set the current scope index before the scopes have been added,
35 // If we set the current scope index before the scopes have been added,
38 // then we need to wait until the loaded signals gets emitted from the scopes
36 // then we need to wait until the loaded signals gets emitted from the scopes
@@ -82,23 +80,16 @@ Item {
82 dashContentList.currentItem.theScope.closeScope(scope)
80 dashContentList.currentItem.theScope.closeScope(scope)
83 }
81 }
84
82
85− function closePreview() {
86− previewListView.open = false;
87− }
88−
89 Item {
83 Item {
90 id: dashContentListHolder
84 id: dashContentListHolder
91
85
92− x: previewListView.open ? -width : 0
86+ anchors.fill: parent
93− Behavior on x { UbuntuNumberAnimation { } }
94− width: parent.width
95− height: parent.height
96
87
97 ListView {
88 ListView {
98 id: dashContentList
89 id: dashContentList
99 objectName: "dashContentList"
90 objectName: "dashContentList"
100
91
101− interactive: dashContent.scopes.loaded && !previewListView.open && currentItem && !currentItem.moving
92+ interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving
102
93
103 anchors.fill: parent
94 anchors.fill: parent
104 model: dashContent.model
95 model: dashContent.model
@@ -130,6 +121,10 @@ Item {
130 Loader {
121 Loader {
131 width: ListView.view.width
122 width: ListView.view.width
132 height: ListView.view.height
123 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+ }
133 asynchronous: true
128 asynchronous: true
134 // TODO This if will eventually go away since we're killing DashApps.qml
129 // TODO This if will eventually go away since we're killing DashApps.qml
135 // once we move app closing to the spread
130 // once we move app closing to the spread
@@ -147,11 +142,8 @@ Item {
147
142
148 onLoaded: {
143 onLoaded: {
149 item.objectName = scope.id
144 item.objectName = scope.id
150− item.pageHeader = dashPageHeader;
151− item.previewListView = previewListView;
152 item.scope = Qt.binding(function() { return scope })
145 item.scope = Qt.binding(function() { return scope })
153 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
146 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
154− item.tabBarHeight = Qt.binding(function() { return dashPageHeader.implicitHeight; })
155 dashContent.scopeLoaded(item.scope.id)
147 dashContent.scopeLoaded(item.scope.id)
156 }
148 }
157 Connections {
149 Connections {
@@ -164,78 +156,13 @@ Item {
164 dashContent.openScope(scope);
156 dashContent.openScope(scope);
165 }
157 }
166 }
158 }
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 {
159+ Connections {
208− target: dashContentList
160+ target: dashContent
209− onCurrentIndexChanged: {
161+ onClosePreview: if (item) item.closePreview()
210− tabBarModel.selectedIndex = dashContentList.currentIndex
211 }
162 }
212− }
213
163
214− Timer {
164+ Component.onDestruction: active = false
215− id: selectionModeTimer
216− interval: 1
217− onTriggered: tabBar.selectionMode = false
218 }
165 }
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− }
228 }
166 }
229 }
167 }
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− }
241}
168}
qml/Dash/DashDepartments.qml+8−7
@@ -29,6 +29,7 @@ AbstractButton {
29
29
30 property alias windowWidth: blackRect.width
30 property alias windowWidth: blackRect.width
31 property alias windowHeight: blackRect.height
31 property alias windowHeight: blackRect.height
32+ property var scopeStyle: null
32
33
33 // Are we drilling down the tree or up?
34 // Are we drilling down the tree or up?
34 property bool isGoingBack: false
35 property bool isGoingBack: false
@@ -78,18 +79,17 @@ AbstractButton {
78 anchors.margins: units.gu(2)
79 anchors.margins: units.gu(2)
79 verticalAlignment: Text.AlignVCenter
80 verticalAlignment: Text.AlignVCenter
80 text: root.currentDepartment ? root.currentDepartment.label : ""
81 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"
82 }
83 }
83
84
84− Image {
85+ Icon {
85 anchors.verticalCenter: parent.verticalCenter
86 anchors.verticalCenter: parent.verticalCenter
86 anchors.right: parent.right
87 anchors.right: parent.right
87 anchors.rightMargin: units.gu(2)
88 anchors.rightMargin: units.gu(2)
88− rotation: showList ? 180 : 0
89+ name: showList ? "up" : "down"
89− source: "image://theme/dropdown-menu"
90− sourceSize.height: parent.height - units.gu(2)
90+ height: units.gu(2)
91− sourceSize.width: units.gu(2)
91+ width: height
92− fillMode: Image.PreserveAspectFit
92+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
93 }
93 }
94
94
95 // departmentListView is outside root
95 // departmentListView is outside root
@@ -124,6 +124,7 @@ AbstractButton {
124 objectName: "department" + index
124 objectName: "department" + index
125 visible: height != 0
125 visible: height != 0
126 width: departmentListView.width
126 width: departmentListView.width
127+ scopeStyle: root.scopeStyle
127 property real desiredHeight: {
128 property real desiredHeight: {
128 if (root.showList) {
129 if (root.showList) {
129 if (department && department.loaded && x == departmentListView.contentX)
130 if (department && department.loaded && x == departmentListView.contentX)
qml/Dash/DashDepartmentsList.qml+19−17
@@ -21,15 +21,17 @@ Item {
21 id: root
21 id: root
22 property var department: null
22 property var department: null
23 property var currentDepartment: null
23 property var currentDepartment: null
24+ property var scopeStyle: null
24 signal enterDepartment(var newDepartmentId, bool hasChildren)
25 signal enterDepartment(var newDepartmentId, bool hasChildren)
25 signal goBackToParentClicked()
26 signal goBackToParentClicked()
26 signal allDepartmentClicked()
27 signal allDepartmentClicked()
27
28
28 readonly property int itemHeight: units.gu(5)
29 readonly property int itemHeight: units.gu(5)
30+ readonly property color foregroundColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
29 implicitHeight: flickable.contentHeight
31 implicitHeight: flickable.contentHeight
30
32
31 Rectangle {
33 Rectangle {
32− color: "white"
34+ color: !root.scopeStyle || Qt.colorEqual(root.scopeStyle.background, "transparent") ? "white" : root.scopeStyle.background
33 anchors.fill: parent
35 anchors.fill: parent
34 }
36 }
35
37
@@ -71,17 +73,17 @@ Item {
71
73
72 onClicked: root.goBackToParentClicked();
74 onClicked: root.goBackToParentClicked();
73
75
74− Image {
76+ Icon {
75 id: backImage
77 id: backImage
76 anchors {
78 anchors {
77 verticalCenter: parent.verticalCenter
79 verticalCenter: parent.verticalCenter
78 left: parent.left
80 left: parent.left
79 leftMargin: units.gu(2)
81 leftMargin: units.gu(2)
80 }
82 }
81− source: "image://theme/back"
83+ name: "back"
82− sourceSize.height: parent.height - units.gu(3)
84+ height: units.gu(2)
83− sourceSize.width: units.gu(3)
85+ width: height
84− fillMode: Image.PreserveAspectFit
86+ color: root.foregroundColor
85 }
87 }
86
88
87 Label {
89 Label {
@@ -91,7 +93,7 @@ Item {
91 leftMargin: units.gu(0.5)
93 leftMargin: units.gu(0.5)
92 }
94 }
93 text: department ? department.parentLabel : ""
95 text: department ? department.parentLabel : ""
94− color: "gray" // TODO remove once we're a separate app
96+ color: root.foregroundColor
95 }
97 }
96
98
97 Rectangle {
99 Rectangle {
@@ -102,7 +104,7 @@ Item {
102 leftMargin: units.gu(2)
104 leftMargin: units.gu(2)
103 rightMargin: units.gu(2)
105 rightMargin: units.gu(2)
104 }
106 }
105− color: "gray"
107+ color: root.foregroundColor
106 opacity: 0.2
108 opacity: 0.2
107 height: units.dp(1)
109 height: units.dp(1)
108 }
110 }
@@ -123,7 +125,7 @@ Item {
123 }
125 }
124 text: department ? (department.allLabel != "" ? department.allLabel : department.label) : ""
126 text: department ? (department.allLabel != "" ? department.allLabel : department.label) : ""
125 font.bold: true
127 font.bold: true
126− color: "gray" // TODO remove once we're a separate app
128+ color: root.foregroundColor
127 }
129 }
128
130
129 Rectangle {
131 Rectangle {
@@ -134,7 +136,7 @@ Item {
134 leftMargin: units.gu(2)
136 leftMargin: units.gu(2)
135 rightMargin: units.gu(2)
137 rightMargin: units.gu(2)
136 }
138 }
137− color: "gray"
139+ color: root.foregroundColor
138 opacity: 0.2
140 opacity: 0.2
139 height: units.dp(1)
141 height: units.dp(1)
140 }
142 }
@@ -159,19 +161,19 @@ Item {
159 leftMargin: units.gu(2)
161 leftMargin: units.gu(2)
160 }
162 }
161 text: label
163 text: label
162− color: "gray" // TODO remove once we're a separate app
164+ color: root.foregroundColor
163 }
165 }
164
166
165− Image {
167+ Icon {
166 anchors {
168 anchors {
167 verticalCenter: parent.verticalCenter
169 verticalCenter: parent.verticalCenter
168 right: parent.right
170 right: parent.right
169 rightMargin: units.gu(2)
171 rightMargin: units.gu(2)
170 }
172 }
173+ height: units.gu(2)
174+ width: height
171− source: hasChildren ? "image://theme/chevron" : "graphics/tick.png"
175+ name: hasChildren ? "go-next" : "tick"
172− sourceSize.height: parent.height - units.gu(3)
176+ color: root.foregroundColor
173− sourceSize.width: units.gu(3)
174− fillMode: Image.PreserveAspectFit
175 visible: hasChildren || isActive
177 visible: hasChildren || isActive
176 }
178 }
177
179
@@ -183,7 +185,7 @@ Item {
183 leftMargin: units.gu(2)
185 leftMargin: units.gu(2)
184 rightMargin: units.gu(2)
186 rightMargin: units.gu(2)
185 }
187 }
186− color: "gray"
188+ color: root.foregroundColor
187 opacity: 0.1
189 opacity: 0.1
188 height: units.dp(1)
190 height: units.dp(1)
189 visible: index != department.count - 1
191 visible: index != department.count - 1
qml/Dash/DashRenderer.qml+8−14
@@ -17,15 +17,11 @@
17import QtQuick 2.0
17import QtQuick 2.0
18
18
19Item {
19Item {
20− // Can the item be expanded?
20+ property int collapsedHeight
21− property bool expandable: false
22
21
23− // In case it can be expanded, is it filtered
22+ property int expandedHeight
24− property bool filtered: true
25
23
26− property int collapsedHeight: height
24+ property int collapsedItemCount: -1
27−
28− property int uncollapsedHeight: height
29
25
30 property int displayMarginBeginning: 0
26 property int displayMarginBeginning: 0
31
27
@@ -36,10 +32,11 @@ Item {
36 // The model to renderer
32 // The model to renderer
37 property var model
33 property var model
38
34
39− /*!
40− \brief CardTool component.
35+ /// CardTool component.
41− */
42− property var cardTool: undefined
36+ property var cardTool: null
37+
38+ /// ScopeStyle component.
39+ property var scopeStyle: null
43
40
44 /// Emitted when the user clicked on an item
41 /// Emitted when the user clicked on an item
45 /// @param index is the index of the clicked item
42 /// @param index is the index of the clicked item
@@ -49,7 +46,4 @@ Item {
49 /// Emitted when the user pressed and held on an item
46 /// Emitted when the user pressed and held on an item
50 /// @param index is the index of the held item
47 /// @param index is the index of the held item
51 signal pressAndHold(int index)
48 signal pressAndHold(int index)
52−
53− function setFilter(filter, animate) {
54− }
55}
49}
qml/Dash/GenericScopeView.qml+189−93
@@ -19,6 +19,7 @@ import Ubuntu.Components 0.1
19import Utils 0.1
19import Utils 0.1
20import Unity 0.2
20import Unity 0.2
21import Unity.Application 0.1
21import Unity.Application 0.1
22+import Dash 0.1
22import "../Components"
23import "../Components"
23import "../Components/ListItems" as ListItems
24import "../Components/ListItems" as ListItems
24
25
@@ -29,13 +30,16 @@ FocusScope {
29 property SortFilterProxyModel categories: categoryFilter
30 property SortFilterProxyModel categories: categoryFilter
30 property bool isCurrent: false
31 property bool isCurrent: false
31 property alias moving: categoryView.moving
32 property alias moving: categoryView.moving
32− property int tabBarHeight: 0
33+ property bool hasBackAction: false
33− property PageHeader pageHeader: null
34− property Item previewListView: null
35−
36 property bool enableHeightBehaviorOnNextCreation: false
34 property bool enableHeightBehaviorOnNextCreation: false
37 property var categoryView: categoryView
35 property var categoryView: categoryView
38
36
37+ property var scopeStyle: ScopeStyle {
38+ style: scope ? scope.customizations : {}
39+ }
40+
41+ signal backClicked()
42+
39 onScopeChanged: {
43 onScopeChanged: {
40 if (scope) {
44 if (scope) {
41 scope.activateApplication.connect(activateApp);
45 scope.activateApplication.connect(activateApp);
@@ -54,6 +58,10 @@ FocusScope {
54 categoryView.showHeader()
58 categoryView.showHeader()
55 }
59 }
56
60
61+ function closePreview() {
62+ previewListView.open = false;
63+ }
64+
57 Binding {
65 Binding {
58 target: scope
66 target: scope
59 property: "isActive"
67 property: "isActive"
@@ -88,44 +96,55 @@ FocusScope {
88 when: isCurrent
96 when: isCurrent
89 }
97 }
90
98
91− Connections {
92− target: panel
93− onSearchClicked: if (isCurrent) {
94− pageHeader.triggerSearch()
95− categoryView.showHeader()
96− }
97− }
98−
99 Connections {
99 Connections {
100 target: scopeView.scope
100 target: scopeView.scope
101 onShowDash: previewListView.open = false;
101 onShowDash: previewListView.open = false;
102 onHideDash: previewListView.open = false;
102 onHideDash: previewListView.open = false;
103 }
103 }
104
104
105+ Rectangle {
106+ anchors.fill: parent
107+ color: scopeView.scopeStyle ? scopeView.scopeStyle.background : "transparent"
108+ visible: color != "transparent"
109+ }
110+
105 ScopeListView {
111 ScopeListView {
106 id: categoryView
112 id: categoryView
107 objectName: "categoryListView"
113 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+
109 model: scopeView.categories
120 model: scopeView.categories
110 forceNoClip: previewListView.open
121 forceNoClip: previewListView.open
122+ pixelAligned: true
111
123
112 property string expandedCategoryId: ""
124 property string expandedCategoryId: ""
113
125
114− onContentYChanged: pageHeader.positionRealHeader();
115− onOriginYChanged: pageHeader.positionRealHeader();
116− onContentHeightChanged: pageHeader.positionRealHeader();
117−
118 delegate: ListItems.Base {
126 delegate: ListItems.Base {
119 id: baseItem
127 id: baseItem
120 objectName: "dashCategory" + category
128 objectName: "dashCategory" + category
121 highlightWhenPressed: false
129 highlightWhenPressed: false
122 showDivider: false
130 showDivider: false
123
131
124− readonly property bool expandable: rendererLoader.item ? rendererLoader.item.expandable : false
132+ readonly property bool expandable: {
125− readonly property bool filtered: rendererLoader.item ? rendererLoader.item.filtered : true
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
126 readonly property string category: categoryId
139 readonly property string category: categoryId
140+ readonly property string headerLink: model.headerLink
127 readonly property var item: rendererLoader.item
141 readonly property var item: rendererLoader.item
128
142
143+ function expand(expand, animate) {
144+ heightBehaviour.enabled = animate;
145+ expanded = expand;
146+ }
147+
129 CardTool {
148 CardTool {
130 id: cardTool
149 id: cardTool
131 objectName: "cardTool"
150 objectName: "cardTool"
@@ -135,22 +154,49 @@ FocusScope {
135 viewWidth: parent.width
154 viewWidth: parent.width
136 }
155 }
137
156
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+
138 Loader {
169 Loader {
139 id: rendererLoader
170 id: rendererLoader
140 anchors {
171 anchors {
141 top: parent.top
172 top: parent.top
142 left: parent.left
173 left: parent.left
143 right: parent.right
174 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+ }
145 }
188 }
146
189
190+ readonly property bool expanded: baseItem.expanded || !baseItem.expandable
191+ height: expanded ? item.expandedHeight : item.collapsedHeight
192+
147 source: {
193 source: {
148 switch (cardTool.categoryLayout) {
194 switch (cardTool.categoryLayout) {
149 case "carousel": return "CardCarousel.qml";
195 case "carousel": return "CardCarousel.qml";
150 case "vertical-journal": return "CardVerticalJournal.qml";
196 case "vertical-journal": return "CardVerticalJournal.qml";
151 case "running-apps": return "Apps/RunningApplicationsGrid.qml";
197 case "running-apps": return "Apps/RunningApplicationsGrid.qml";
152 case "grid":
198 case "grid":
153− default: return "CardFilterGrid.qml";
199+ default: return "CardGrid.qml";
154 }
200 }
155 }
201 }
156
202
@@ -168,9 +214,10 @@ FocusScope {
168 item.model = Qt.binding(function() { return results })
214 item.model = Qt.binding(function() { return results })
169 }
215 }
170 item.objectName = Qt.binding(function() { return categoryId })
216 item.objectName = Qt.binding(function() { return categoryId })
217+ item.scopeStyle = scopeView.scopeStyle;
171− if (item.expandable) {
218+ if (baseItem.expandable) {
172− var shouldFilter = categoryId != categoryView.expandedCategoryId;
219+ var shouldExpand = categoryId === categoryView.expandedCategoryId;
173− item.setFilter(shouldFilter, false /*animate*/);
220+ baseItem.expand(shouldExpand, false /*animate*/);
174 }
221 }
175 updateDelegateCreationRange();
222 updateDelegateCreationRange();
176 item.cardTool = cardTool;
223 item.cardTool = cardTool;
@@ -185,31 +232,28 @@ FocusScope {
185 Connections {
232 Connections {
186 target: rendererLoader.item
233 target: rendererLoader.item
187 onClicked: {
234 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") {
189 // TODO Technically it is possible that calling activate() will make the scope emit
236 // TODO Technically it is possible that calling activate() will make the scope emit
190 // previewRequested so that we show a preview but there's no scope that does that yet
237 // previewRequested so that we show a preview but there's no scope that does that yet
191 // so it's not implemented
238 // so it's not implemented
192 scopeView.scope.activate(result)
239 scopeView.scope.activate(result)
193 } else {
240 } else {
194− previewListView.model = target.model;
241+ openPreview(index);
195− previewListView.currentIndex = -1
196− previewListView.currentIndex = index;
197− previewListView.open = true
198 }
242 }
199 }
243 }
200− onPressAndHold: {
244+ onPressAndHold: openPreview(index)
201− previewListView.model = target.model;
245+
202− previewListView.currentIndex = -1
246+ function openPreview(index) {
203− previewListView.currentIndex = index;
247+ if (!rendererLoader.expanded && !seeAllLabel.visible && target.collapsedItemCount > 0) {
204− previewListView.open = true
248+ previewLimitModel.model = target.model;
205− }
249+ previewLimitModel.limit = target.collapsedItemCount;
206− onExpandableChanged: {
250+ previewListView.model = previewLimitModel;
207− // This can happen with the VJ that doesn't know how height it will be on creation
251+ } else {
208− // so doesn't set expandable until a bit too late for onLoaded
252+ previewListView.model = target.model;
209− if (rendererLoader.item.expandable) {
210− var shouldFilter = baseItem.category != categoryView.expandedCategoryId;
211− rendererLoader.item.setFilter(shouldFilter, false /*animate*/);
212 }
253 }
254+ previewListView.currentIndex = -1;
255+ previewListView.currentIndex = index;
256+ previewListView.open = true;
213 }
257 }
214 }
258 }
215 Connections {
259 Connections {
@@ -219,17 +263,17 @@ FocusScope {
219 }
263 }
220 function collapseAllButExpandedCategory() {
264 function collapseAllButExpandedCategory() {
221 var item = rendererLoader.item;
265 var item = rendererLoader.item;
222− if (item.expandable) {
266+ if (baseItem.expandable) {
223− var shouldFilter = categoryId != categoryView.expandedCategoryId;
267+ var shouldExpand = categoryId === categoryView.expandedCategoryId;
224− if (shouldFilter != item.filter) {
268+ if (shouldExpand != baseItem.expanded) {
225 // If the filter animation will be seen start it, otherwise, just flip the switch
269 // If the filter animation will be seen start it, otherwise, just flip the switch
226− var shrinkingVisible = shouldFilter && y + item.collapsedHeight < categoryView.height;
270+ var shrinkingVisible = !shouldExpand && y + item.collapsedHeight + seeAll.height < categoryView.height;
227− var growingVisible = !shouldFilter && y + height < categoryView.height;
271+ var growingVisible = shouldExpand && y + height < categoryView.height;
228− if (!previewListView.open || !shouldFilter) {
272+ if (!previewListView.open || shouldExpand) {
229 var animate = shrinkingVisible || growingVisible;
273 var animate = shrinkingVisible || growingVisible;
230− item.setFilter(shouldFilter, animate)
274+ baseItem.expand(shouldExpand, animate)
231− if (!shouldFilter && !previewListView.open) {
275+ if (shouldExpand && !previewListView.open) {
232− categoryView.maximizeVisibleArea(index, item.uncollapsedHeight);
276+ categoryView.maximizeVisibleArea(index, item.expandedHeight + seeAll.height);
233 }
277 }
234 }
278 }
235 }
279 }
@@ -266,73 +310,125 @@ FocusScope {
266 item.displayMarginEnd = -baseItem.height;
310 item.displayMarginEnd = -baseItem.height;
267 } else {
311 } else {
268 item.displayMarginBeginning = -Math.max(-baseItem.y, 0);
312 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)
270 }
315 }
271 }
316 }
272 }
317 }
318+ }
273
319
274− Image {
320+ AbstractButton {
275− visible: index != 0
321+ id: seeAll
276− anchors {
322+ objectName: "seeAll"
277− top: parent.top
323+ anchors {
278− left: parent.left
324+ top: rendererLoader.bottom
279− right: parent.right
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 = "";
280 }
335 }
281− fillMode: Image.Stretch
282− source: "graphics/dash_divider_top_lightgrad.png"
283− z: -1
284 }
336 }
285
337
286− Image {
338+ Label {
287− // FIXME Should not rely on model.count but view.count, but ListViewWithPageHeader doesn't expose it yet.
339+ id: seeAllLabel
288− visible: index != categoryView.model.count - 1
340+ text: baseItem.expanded ? i18n.tr("See less") : i18n.tr("See all")
289 anchors {
341 anchors {
290− bottom: parent.bottom
342+ centerIn: parent
291− left: parent.left
343+ verticalCenterOffset: units.gu(-0.5)
292− right: parent.right
293 }
344 }
294− fillMode: Image.Stretch
345+ fontSize: "small"
295− source: "graphics/dash_divider_top_darkgrad.png"
346+ font.weight: Font.Bold
296− z: -1
347+ color: scopeStyle ? scopeStyle.foreground : "grey"
348+ visible: baseItem.expandable && !baseItem.headerLink
297 }
349 }
298 }
350 }
299
351
300− onHeightChanged: rendererLoader.updateDelegateCreationRange();
352+ Image {
301− onYChanged: rendererLoader.updateDelegateCreationRange();
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+ }
302 }
376 }
303
377
304 sectionProperty: "name"
378 sectionProperty: "name"
305 sectionDelegate: ListItems.Header {
379 sectionDelegate: ListItems.Header {
306 objectName: "dashSectionHeader" + (delegate ? delegate.category : "")
380 objectName: "dashSectionHeader" + (delegate ? delegate.category : "")
307− property var delegate: categoryView.item(delegateIndex)
381+ readonly property var delegate: categoryView.item(delegateIndex)
308 width: categoryView.width
382 width: categoryView.width
383+ height: section != "" ? units.gu(5) : 0
309 text: section
384 text: section
310− image: {
385+ color: scopeStyle ? scopeStyle.foreground : "grey"
311− if (delegate && delegate.expandable)
386+ iconName: delegate && delegate.headerLink ? "go-next" : ""
312− return delegate.filtered ? "graphics/header_handlearrow.png" : "graphics/header_handlearrow2.png"
313− return "";
314− }
315 onClicked: {
387 onClicked: {
316− if (categoryView.expandedCategoryId != delegate.category)
388+ if (delegate.headerLink) scopeView.scope.performQuery(delegate.headerLink);
317− categoryView.expandedCategoryId = delegate.category;
318− else
319− categoryView.expandedCategoryId = "";
320 }
389 }
321 }
390 }
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();
330
391
331− function positionRealHeader() {
392+ pageHeader: PageHeader {
332− if (scopeView.pageHeader && scopeView.isCurrent) {
393+ id: pageHeader
333− scopeView.pageHeader.y = y + parent.y;
394+ objectName: "scopePageHeader"
334− }
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
335 }
409 }
410+
411+ onBackClicked: scopeView.backClicked()
336 }
412 }
337 }
413 }
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+
338}
434}
qml/Dash/PreviewListView.qml+9−25
@@ -24,7 +24,7 @@ Item {
24 id: root
24 id: root
25
25
26 property var scope: null
26 property var scope: null
27− property var pageHeader: null
27+ property var scopeStyle: null
28
28
29 property alias open: previewListView.open
29 property alias open: previewListView.open
30 property alias model: previewListView.model
30 property alias model: previewListView.model
@@ -34,34 +34,19 @@ Item {
34
34
35 PageHeader {
35 PageHeader {
36 id: header
36 id: header
37− objectName: root.objectName + "_pageHeader"
37+ objectName: "pageHeader"
38 width: parent.width
38 width: parent.width
39− searchEntryEnabled: false
39+ title: scope ? scope.name : ""
40− scope: root.scope
41− height: units.gu(8.5)
42 showBackButton: true
40 showBackButton: true
43− onBackClicked: root.open = false
41+ searchEntryEnabled: false
42+ scopeStyle: root.scopeStyle
44
43
45− childItem: Label {
44+ onBackClicked: root.open = false
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− }
60 }
45 }
61
46
62 ListView {
47 ListView {
63 id: previewListView
48 id: previewListView
64− objectName: root.objectName + "_listView"
49+ objectName: "listView"
65 anchors {
50 anchors {
66 top: header.bottom
51 top: header.bottom
67 bottom: parent.bottom
52 bottom: parent.bottom
@@ -88,9 +73,7 @@ Item {
88 property bool open: false
73 property bool open: false
89
74
90 onOpenChanged: {
75 onOpenChanged: {
91− if (open) {
76+ if (!open) {
92− pageHeader.unfocus();
93− } else {
94 // Cancel any pending preview requests or actions
77 // Cancel any pending preview requests or actions
95 if (previewListView.currentItem && previewListView.currentItem.previewData !== undefined) {
78 if (previewListView.currentItem && previewListView.currentItem.previewData !== undefined) {
96 previewListView.currentItem.previewData.cancelAction();
79 previewListView.currentItem.previewData.cancelAction();
@@ -118,6 +101,7 @@ Item {
118 var previewStack = root.scope.preview(result);
101 var previewStack = root.scope.preview(result);
119 return previewStack.getPreviewModel(0);
102 return previewStack.getPreviewModel(0);
120 }
103 }
104+ scopeStyle: root.scopeStyle
121 }
105 }
122
106
123 MouseArea {
107 MouseArea {
qml/Dash/Previews/Preview.qml+4
@@ -36,6 +36,9 @@ Item {
36 //! \brief Should be set to true if this preview is currently displayed.
36 //! \brief Should be set to true if this preview is currently displayed.
37 property bool isCurrent: false
37 property bool isCurrent: false
38
38
39+ //! \brief The ScopeStyle component.
40+ property var scopeStyle: null
41+
39 clip: true
42 clip: true
40
43
41 Binding {
44 Binding {
@@ -77,6 +80,7 @@ Item {
77 widgetType: model.type
80 widgetType: model.type
78 widgetData: model.properties
81 widgetData: model.properties
79 isCurrentPreview: root.isCurrent
82 isCurrentPreview: root.isCurrent
83+ scopeStyle: root.scopeStyle
80 anchors {
84 anchors {
81 left: parent.left
85 left: parent.left
82 right: parent.right
86 right: parent.right
qml/Dash/Previews/PreviewAudioPlayback.qml+3−3
@@ -139,7 +139,7 @@ PreviewWidget {
139 objectName: "trackTitleLabel"
139 objectName: "trackTitleLabel"
140 anchors { top: parent.top; left: parent.left; right: parent.right }
140 anchors { top: parent.top; left: parent.left; right: parent.right }
141 opacity: 0.9
141 opacity: 0.9
142− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
142+ color: scopeStyle ? scopeStyle.foreground : "grey"
143 fontSize: "small"
143 fontSize: "small"
144 horizontalAlignment: Text.AlignLeft
144 horizontalAlignment: Text.AlignLeft
145 text: modelData["title"]
145 text: modelData["title"]
@@ -152,7 +152,7 @@ PreviewWidget {
152 anchors { top: trackTitleLabel.bottom; left: parent.left; right: parent.right }
152 anchors { top: trackTitleLabel.bottom; left: parent.left; right: parent.right }
153 visible: text !== ""
153 visible: text !== ""
154 opacity: 0.9
154 opacity: 0.9
155− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
155+ color: scopeStyle ? scopeStyle.foreground : "grey"
156 font.weight: Font.Light
156 font.weight: Font.Light
157 fontSize: "small"
157 fontSize: "small"
158 horizontalAlignment: Text.AlignLeft
158 horizontalAlignment: Text.AlignLeft
@@ -193,7 +193,7 @@ PreviewWidget {
193 anchors.verticalCenter: parent.verticalCenter
193 anchors.verticalCenter: parent.verticalCenter
194 width: parent.column3Width
194 width: parent.column3Width
195 opacity: 0.9
195 opacity: 0.9
196− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
196+ color: scopeStyle ? scopeStyle.foreground : "grey"
197 fontSize: "small"
197 fontSize: "small"
198 horizontalAlignment: Text.AlignRight
198 horizontalAlignment: Text.AlignRight
199 text: audio.lengthToString(modelData["length"])
199 text: audio.lengthToString(modelData["length"])
qml/Dash/Previews/PreviewHeader.qml+1−1
@@ -35,7 +35,7 @@ PreviewWidget {
35 readonly property url mascot: root.widgetData["mascot"] || ""
35 readonly property url mascot: root.widgetData["mascot"] || ""
36 readonly property string title: root.widgetData["title"] || ""
36 readonly property string title: root.widgetData["title"] || ""
37 readonly property string subtitle: root.widgetData["subtitle"] || ""
37 readonly property string subtitle: root.widgetData["subtitle"] || ""
38− readonly property color fontColor: "grey"
38+ readonly property color fontColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
39
39
40 implicitHeight: row.height + row.margins * 2
40 implicitHeight: row.height + row.margins * 2
41 width: parent.width
41 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 {
61 size: 5
61 size: 5
62 value: modelData["rating"] || -1
62 value: modelData["rating"] || -1
63 visible: value >= 0
63 visible: value >= 0
64+ interactive: false
64
65
65 property var urlIconEmpty: widgetData["rating-icon-empty"]
66 property var urlIconEmpty: widgetData["rating-icon-empty"]
66 property var urlIconFull: widgetData["rating-icon-full"]
67 property var urlIconFull: widgetData["rating-icon-full"]
@@ -71,8 +72,7 @@ PreviewWidget {
71 id: authorLabel
72 id: authorLabel
72 objectName: "authorLabel"
73 objectName: "authorLabel"
73 anchors { left: parent.left; right: parent.right }
74 anchors { left: parent.left; right: parent.right }
74− // TODO cimi: Yet another fix requiring Palette update.
75+ color: scopeStyle ? scopeStyle.foreground : "grey"
75− color: "grey" //Theme.palette.selected.backgroundText
76 opacity: .8
76 opacity: .8
77 text: modelData["author"] || ""
77 text: modelData["author"] || ""
78 visible: text !== ""
78 visible: text !== ""
@@ -83,8 +83,7 @@ PreviewWidget {
83 id: reviewLabel
83 id: reviewLabel
84 objectName: "reviewLabel"
84 objectName: "reviewLabel"
85 anchors { left: parent.left; right: parent.right }
85 anchors { left: parent.left; right: parent.right }
86− // TODO cimi: Yet another fix requiring Palette update.
86+ color: scopeStyle ? scopeStyle.foreground : "grey"
87− color: "grey" //Theme.palette.selected.backgroundText
88 opacity: .8
87 opacity: .8
89 text: modelData["review"] || ""
88 text: modelData["review"] || ""
90 visible: text !== ""
89 visible: text !== ""
qml/Dash/Previews/PreviewRatingInput.qml+2−4
@@ -76,8 +76,7 @@ PreviewWidget {
76 verticalCenter: parent.verticalCenter
76 verticalCenter: parent.verticalCenter
77 left: parent.left
77 left: parent.left
78 }
78 }
79− // TODO cimi: Yet another fix requiring Palette update.
79+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
80− color: "grey" //Theme.palette.selected.backgroundText
81 opacity: .8
80 opacity: .8
82 text: widgetData["rating-label"] || i18n.tr("Rate this")
81 text: widgetData["rating-label"] || i18n.tr("Rate this")
83 }
82 }
@@ -122,8 +121,7 @@ PreviewWidget {
122 left: parent.left
121 left: parent.left
123 right: parent.right
122 right: parent.right
124 }
123 }
125− // TODO cimi: Yet another fix requiring Palette update.
124+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
126− color: "grey" //Theme.palette.selected.backgroundText
127 opacity: .8
125 opacity: .8
128 text: widgetData["review-label"] || i18n.tr("Add a review")
126 text: widgetData["review-label"] || i18n.tr("Add a review")
129 }
127 }
qml/Dash/Previews/PreviewTextSummary.qml+2−4
@@ -39,8 +39,7 @@ PreviewWidget {
39 }
39 }
40 height: visible ? implicitHeight : 0
40 height: visible ? implicitHeight : 0
41 fontSize: "large"
41 fontSize: "large"
42− // TODO karni: Yet another fix requiring Palette update.
42+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
43− color: "grey" //Theme.palette.selected.backgroundText
44 visible: text !== ""
43 visible: text !== ""
45 opacity: .8
44 opacity: .8
46 text: widgetData["title"] || ""
45 text: widgetData["title"] || ""
@@ -62,8 +61,7 @@ PreviewWidget {
62 clip: true
61 clip: true
63 fontSize: "small"
62 fontSize: "small"
64 lineHeight: 1.2
63 lineHeight: 1.2
65− // TODO karni: Yet another fix requiring Palette update.
64+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
66− color: "grey" //Theme.palette.selected.backgroundText
67 opacity: .8
65 opacity: .8
68 text: widgetData["text"]
66 text: widgetData["text"]
69 wrapMode: Text.Wrap
67 wrapMode: Text.Wrap
qml/Dash/Previews/PreviewWidget.qml+3
@@ -28,6 +28,9 @@ Item {
28 //! Variable used to contain widget's data
28 //! Variable used to contain widget's data
29 property var widgetData
29 property var widgetData
30
30
31+ //! The ScopeStyle component.
32+ property var scopeStyle: null
33+
31 /*! \brief This signal should be emitted when a preview action was triggered.
34 /*! \brief This signal should be emitted when a preview action was triggered.
32 *
35 *
33 * \param widgetId, actionId Respective identifiers from widgetData.
36 * \param widgetId, actionId Respective identifiers from widgetData.
qml/Dash/Previews/PreviewWidgetFactory.qml+5
@@ -31,6 +31,9 @@ Loader {
31 //! Widget data, forwarded to the widget as is.
31 //! Widget data, forwarded to the widget as is.
32 property var widgetData: null
32 property var widgetData: null
33
33
34+ //! The ScopeStyle component.
35+ property var scopeStyle: null
36+
34 //! Set to true if the parent preview is displayed.
37 //! Set to true if the parent preview is displayed.
35 property bool isCurrentPreview: false
38 property bool isCurrentPreview: false
36
39
@@ -48,6 +51,7 @@ Loader {
48 case "header": return "PreviewHeader.qml";
51 case "header": return "PreviewHeader.qml";
49 case "image": return "PreviewZoomableImage.qml";
52 case "image": return "PreviewZoomableImage.qml";
50 case "progress": return "PreviewProgress.qml";
53 case "progress": return "PreviewProgress.qml";
54+ case "payments": return "PreviewPayments.qml";
51 case "rating-input": return "PreviewRatingInput.qml";
55 case "rating-input": return "PreviewRatingInput.qml";
52 case "reviews": return "PreviewRatingDisplay.qml";
56 case "reviews": return "PreviewRatingDisplay.qml";
53 case "text": return "PreviewTextSummary.qml";
57 case "text": return "PreviewTextSummary.qml";
@@ -61,6 +65,7 @@ Loader {
61 item.widgetId = Qt.binding(function() { return root.widgetId } )
65 item.widgetId = Qt.binding(function() { return root.widgetId } )
62 item.widgetData = Qt.binding(function() { return root.widgetData } )
66 item.widgetData = Qt.binding(function() { return root.widgetData } )
63 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
67 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
68+ if (item.hasOwnProperty("scopeStyle")) item.scopeStyle = root.scopeStyle;
64 }
69 }
65
70
66 Connections {
71 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 {
70 DraggingArea {
70 DraggingArea {
71 id: dragHandle
71 id: dragHandle
72 anchors.fill: parent
72 anchors.fill: parent
73− enabled: greeter.narrowMode || !greeter.locked
73+ enabled: (greeter.narrowMode || !greeter.locked) && greeter.enabled
74 orientation: Qt.Horizontal
74 orientation: Qt.Horizontal
75 propagateComposedEvents: true
75 propagateComposedEvents: true
76
76
qml/Hud/HudParametrizedActionsPage.qml+2−2
@@ -19,7 +19,7 @@ import Ubuntu.Components 0.1
19import "../Components"
19import "../Components"
20
20
21Item {
21Item {
22− property alias header: header.text
22+ property alias header: header.title
23 signal backPressed
23 signal backPressed
24 signal confirmPressed
24 signal confirmPressed
25 signal valuesUpdated
25 signal valuesUpdated
@@ -89,7 +89,7 @@ Item {
89 anchors.left: parent.left
89 anchors.left: parent.left
90 anchors.right: parent.right
90 anchors.right: parent.right
91
91
92− PageHeaderLabel {
92+ PageHeader {
93 id: header
93 id: header
94 anchors.top: parent.top
94 anchors.top: parent.top
95 anchors.left: parent.left
95 anchors.left: parent.left
qml/Launcher/Launcher.qml+34−4
@@ -55,6 +55,10 @@ Item {
55 switchToNextState("")
55 switchToNextState("")
56 }
56 }
57
57
58+ function fadeOut() {
59+ fadeOutAnimation.start();
60+ }
61+
58 function switchToNextState(state) {
62 function switchToNextState(state) {
59 animateTimer.nextState = state
63 animateTimer.nextState = state
60 animateTimer.start();
64 animateTimer.start();
@@ -99,6 +103,31 @@ Item {
99 }
103 }
100 }
104 }
101
105
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+
102 MouseArea {
131 MouseArea {
103 id: launcherDragArea
132 id: launcherDragArea
104 enabled: root.state == "visible"
133 enabled: root.state == "visible"
@@ -152,7 +181,7 @@ Item {
152 bottom: parent.bottom
181 bottom: parent.bottom
153 }
182 }
154 x: -width
183 x: -width
155− opacity: (x == -width && dragArea.status === DirectionalDragArea.WaitingForTouch) ? 0 : 1
184+ visible: x > -width || dragArea.status === DirectionalDragArea.Undecided
156 model: LauncherModel
185 model: LauncherModel
157
186
158 property bool animate: true
187 property bool animate: true
@@ -173,9 +202,9 @@ Item {
173 }
202 }
174
203
175 Behavior on x {
204 Behavior on x {
205+ enabled: !dragArea.dragging && !launcherDragArea.drag.active && panel.animate;
176 NumberAnimation {
206 NumberAnimation {
177− // Disabling animation when dragging
207+ duration: 300
178− duration: dragArea.dragging || launcherDragArea.drag.active ? 0 : 300;
179 easing.type: Easing.OutCubic
208 easing.type: Easing.OutCubic
180 }
209 }
181 }
210 }
@@ -215,9 +244,10 @@ Item {
215 onDraggingChanged: {
244 onDraggingChanged: {
216 if (!dragging) {
245 if (!dragging) {
217 if (distance > panel.width / 2) {
246 if (distance > panel.width / 2) {
218− root.switchToNextState("visible")
219 if (distance > minimizeDistance) {
247 if (distance > minimizeDistance) {
220 root.dash()
248 root.dash()
249+ } else {
250+ root.switchToNextState("visible")
221 }
251 }
222 } else {
252 } else {
223 root.switchToNextState("")
253 root.switchToNextState("")
qml/Launcher/LauncherDelegate.qml+36−13
@@ -23,10 +23,10 @@ Item {
23 property string iconName
23 property string iconName
24 property int count: -1
24 property int count: -1
25 property int progress: -1
25 property int progress: -1
26− property bool highlighted: false
27 property bool itemFocused: false
26 property bool itemFocused: false
28 property real maxAngle: 0
27 property real maxAngle: 0
29 property bool inverted: false
28 property bool inverted: false
29+ property bool clipCorner: false
30
30
31 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
31 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
32 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
32 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
@@ -40,12 +40,6 @@ Item {
40 property real itemOpacity: 1
40 property real itemOpacity: 1
41 property real brightness: 0
41 property real brightness: 0
42
42
43− onIconNameChanged: shaderEffectSource.scheduleUpdate();
44− onCountChanged: shaderEffectSource.scheduleUpdate();
45− onProgressChanged: shaderEffectSource.scheduleUpdate();
46− onHighlightedChanged: shaderEffectSource.scheduleUpdate();
47− onItemFocusedChanged: shaderEffectSource.scheduleUpdate();
48−
49 Item {
43 Item {
50 id: iconItem
44 id: iconItem
51 width: parent.itemWidth + units.gu(1)
45 width: parent.itemWidth + units.gu(1)
@@ -63,17 +57,17 @@ Item {
63 id: iconImage
57 id: iconImage
64 sourceSize.width: iconShape.width
58 sourceSize.width: iconShape.width
65 sourceSize.height: iconShape.height
59 sourceSize.height: iconShape.height
60+ fillMode: Image.PreserveAspectCrop
66 source: root.iconName
61 source: root.iconName
67 }
62 }
68 }
63 }
69
64
70 BorderImage {
65 BorderImage {
71− id: overlayHighlight
66+ id: itemGlow
72 anchors.centerIn: iconItem
67 anchors.centerIn: iconItem
73− rotation: inverted ? 180 : 0
68+ source: "graphics/icon-top-highlight.png"
74− source: root.highlighted ? "graphics/selected.sci" : "graphics/non-selected.sci"
75− width: root.itemWidth + units.gu(0.5)
69+ width: root.itemWidth - units.gu(1)
76− height: root.itemHeight + units.gu(0.5)
70+ height: root.itemHeight - units.gu(1)
77 }
71 }
78
72
79 BorderImage {
73 BorderImage {
@@ -150,6 +144,24 @@ Item {
150 }
144 }
151 }
145 }
152
146
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+
153 ShaderEffect {
165 ShaderEffect {
154 id: transformEffect
166 id: transformEffect
155 anchors.centerIn: parent
167 anchors.centerIn: parent
@@ -159,13 +171,18 @@ Item {
159 property real itemOpacity: root.itemOpacity
171 property real itemOpacity: root.itemOpacity
160 property real brightness: Math.max(-1, root.brightness)
172 property real brightness: Math.max(-1, root.brightness)
161 property real angle: root.angle
173 property real angle: root.angle
174+ property bool clipCorner: root.clipCorner
162 rotation: root.inverted ? 180 : 0
175 rotation: root.inverted ? 180 : 0
163
176
164 property variant source: ShaderEffectSource {
177 property variant source: ShaderEffectSource {
165 id: shaderEffectSource
178 id: shaderEffectSource
166 sourceItem: iconItem
179 sourceItem: iconItem
167 hideSource: true
180 hideSource: true
168− live: false
181+ }
182+
183+ property var mask: ShaderEffectSource {
184+ sourceItem: clipper
185+ hideSource: true
169 }
186 }
170
187
171 transform: [
188 transform: [
@@ -202,13 +219,19 @@ Item {
202 fragmentShader: "
219 fragmentShader: "
203 varying highp vec2 qt_TexCoord0;
220 varying highp vec2 qt_TexCoord0;
204 uniform sampler2D source;
221 uniform sampler2D source;
222+ uniform sampler2D mask;
205 uniform lowp float brightness;
223 uniform lowp float brightness;
206 uniform lowp float itemOpacity;
224 uniform lowp float itemOpacity;
225+ uniform bool clipCorner;
207 void main(void)
226 void main(void)
208 {
227 {
209 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
228 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
229+ highp vec4 maskColor = texture2D(mask, qt_TexCoord0);
210 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
230 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
211 sourceColor *= itemOpacity;
231 sourceColor *= itemOpacity;
232+ if (clipCorner) {
233+ sourceColor *= maskColor.a;
234+ }
212 gl_FragColor = sourceColor;
235 gl_FragColor = sourceColor;
213 }"
236 }"
214 }
237 }
qml/Launcher/LauncherPanel.qml+19−16
@@ -22,8 +22,9 @@ import Ubuntu.Components.Popups 0.1
22import "../Components/ListItems"
22import "../Components/ListItems"
23import "../Components/"
23import "../Components/"
24
24
25−Item {
25+Rectangle {
26 id: root
26 id: root
27+ color: "#B2000000"
27
28
28 rotation: inverted ? 180 : 0
29 rotation: inverted ? 180 : 0
29
30
@@ -37,27 +38,18 @@ Item {
37 signal applicationSelected(string appId)
38 signal applicationSelected(string appId)
38 signal showDashHome()
39 signal showDashHome()
39
40
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−
49 Column {
41 Column {
50 id: mainColumn
42 id: mainColumn
51 anchors {
43 anchors {
52 fill: parent
44 fill: parent
53 }
45 }
54
46
55− MouseArea {
47+ Rectangle {
56− id: dashItem
57 width: parent.width
48 width: parent.width
58 height: units.gu(7)
49 height: units.gu(7)
59− onClicked: root.showDashHome()
50+ color: UbuntuColors.orange
60 z: 1
51 z: 1
52+
61 Image {
53 Image {
62 objectName: "dashItem"
54 objectName: "dashItem"
63 width: units.gu(5)
55 width: units.gu(5)
@@ -66,7 +58,13 @@ Item {
66 source: "graphics/home.png"
58 source: "graphics/home.png"
67 rotation: root.rotation
59 rotation: root.rotation
68 }
60 }
61+ MouseArea {
62+ id: dashItem
63+ anchors.fill: parent
64+ onClicked: root.showDashHome()
65+ }
69 }
66 }
67+
70 ThinDivider {
68 ThinDivider {
71 anchors {
69 anchors {
72 left: parent.left
70 left: parent.left
@@ -104,7 +102,6 @@ Item {
104 highlightRangeMode: ListView.ApplyRange
102 highlightRangeMode: ListView.ApplyRange
105 preferredHighlightBegin: (height - itemHeight) / 2
103 preferredHighlightBegin: (height - itemHeight) / 2
106 preferredHighlightEnd: (height + itemHeight) / 2
104 preferredHighlightEnd: (height + itemHeight) / 2
107− spacing: units.gu(0.5)
108
105
109 // The size of the area the ListView is extended to make sure items are not
106 // The size of the area the ListView is extended to make sure items are not
110 // destroyed when dragging them outside the list. This needs to be at least
107 // destroyed when dragging them outside the list. This needs to be at least
@@ -156,6 +153,7 @@ Item {
156 iconName: model.icon
153 iconName: model.icon
157 count: model.count
154 count: model.count
158 progress: model.progress
155 progress: model.progress
156+ clipCorner: model.pinned
159 itemFocused: model.focused
157 itemFocused: model.focused
160 inverted: root.inverted
158 inverted: root.inverted
161 z: -Math.abs(offset)
159 z: -Math.abs(offset)
@@ -168,6 +166,7 @@ Item {
168 anchors.centerIn: parent
166 anchors.centerIn: parent
169 width: parent.width + mainColumn.anchors.leftMargin + mainColumn.anchors.rightMargin
167 width: parent.width + mainColumn.anchors.leftMargin + mainColumn.anchors.rightMargin
170 opacity: 0
168 opacity: 0
169+ source: "graphics/divider-line.png"
171 }
170 }
172
171
173 states: [
172 states: [
@@ -247,7 +246,7 @@ Item {
247 Transition {
246 Transition {
248 from: "dragging"
247 from: "dragging"
249 to: "*"
248 to: "*"
250− NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
249+ NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.SnapDuration }
251 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
250 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
252 SequentialAnimation {
251 SequentialAnimation {
253 ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
252 ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
@@ -465,6 +464,10 @@ Item {
465 width: itemWidth
464 width: itemWidth
466 rotation: root.rotation
465 rotation: root.rotation
467 itemOpacity: 0.9
466 itemOpacity: 0.9
467+ clipCorner: dndArea.draggedIndex > -1 &&
468+ LauncherModel.get(dndArea.draggedIndex).pinned &&
469+ !dndArea.preDragging &&
470+ !dndArea.dragging
468
471
469 function flatten() {
472 function flatten() {
470 fakeDragItemAnimation.start();
473 fakeDragItemAnimation.start();
@@ -523,11 +526,11 @@ Item {
523 color: "#221e1c"
526 color: "#221e1c"
524 width: units.gu(30)
527 width: units.gu(30)
525 height: quickListColumn.height
528 height: quickListColumn.height
529+ visible: quickListShape.visible
526 anchors {
530 anchors {
527 left: root.inverted ? undefined : parent.right
531 left: root.inverted ? undefined : parent.right
528 right: root.inverted ? parent.left : undefined
532 right: root.inverted ? parent.left : undefined
529 margins: units.gu(1)
533 margins: units.gu(1)
530−
531 }
534 }
532 y: itemCenter - (height / 2) + offset
535 y: itemCenter - (height / 2) + offset
533 rotation: root.rotation
536 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 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import QtMultimedia 5.0
18import QtMultimedia 5.0
19−import Ubuntu.Components 0.1
19+import Ubuntu.Components 1.1
20import Unity.Notifications 1.0
20import Unity.Notifications 1.0
21import QMenuModel 0.1
21import QMenuModel 0.1
22import Utils 0.1
22import Utils 0.1
23
23
24+import Ubuntu.Components.ListItems 0.1 as ListItem
25+
24Item {
26Item {
25 id: notification
27 id: notification
26
28
@@ -34,11 +36,18 @@ Item {
34 property var hints
36 property var hints
35 property var notification
37 property var notification
36 property color color
38 property color color
37− property bool fullscreen
39+ property bool fullscreen: false
38 property int maxHeight
40 property int maxHeight
39 property int margins
41 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+ }
40
50
41− fullscreen: false
42 objectName: "background"
51 objectName: "background"
43 implicitHeight: type !== Notification.PlaceHolder ? (fullscreen ? maxHeight : contentColumn.height + contentColumn.spacing * 2) : 0
52 implicitHeight: type !== Notification.PlaceHolder ? (fullscreen ? maxHeight : contentColumn.height + contentColumn.spacing * 2) : 0
44
53
@@ -70,7 +79,7 @@ Item {
70 Audio {
79 Audio {
71 id: sound
80 id: sound
72 objectName: "sound"
81 objectName: "sound"
73− source: hints["suppress-sound"] != "" ? hints["sound-file"] : undefined
82+ source: hints["suppress-sound"] != "true" && hints["sound-file"] != undefined ? hints["sound-file"] : ""
74 }
83 }
75
84
76 onOpacityChanged: {
85 onOpacityChanged: {
@@ -149,9 +158,17 @@ Item {
149 UnityMenuModel {
158 UnityMenuModel {
150 id: unityMenuModel
159 id: unityMenuModel
151
160
161+ property string lastNameOwner: ""
162+
152 busName: paths.busName
163 busName: paths.busName
153 actions: paths.actions
164 actions: paths.actions
154 menuObjectPath: paths.menuObjectPath
165 menuObjectPath: paths.menuObjectPath
166+ onNameOwnerChanged: {
167+ if (lastNameOwner != "" && nameOwner == "" && notification.notification != undefined) {
168+ notification.notification.close()
169+ }
170+ lastNameOwner = nameOwner
171+ }
155 }
172 }
156
173
157 Behavior on implicitHeight {
174 Behavior on implicitHeight {
@@ -262,14 +279,18 @@ Item {
262 }
279 }
263
280
264 Column {
281 Column {
282+ id: dialogColumn
265 objectName: "dialogListView"
283 objectName: "dialogListView"
266 spacing: units.gu(2)
284 spacing: units.gu(2)
267
285
268 visible: count > 0
286 visible: count > 0
269
287
288+ anchors {
289+ left: parent.left
270− anchors.left: parent.left; anchors.right: parent.right
290+ right: parent.right
271− anchors.top: fullscreen ? parent.top : undefined
291+ top: fullscreen ? parent.top : undefined
272− anchors.bottom: fullscreen ? parent.bottom : undefined
292+ bottom: fullscreen ? parent.bottom : undefined
293+ }
273
294
274 Repeater {
295 Repeater {
275 model: unityMenuModel
296 model: unityMenuModel
@@ -277,7 +298,10 @@ Item {
277 NotificationMenuItemFactory {
298 NotificationMenuItemFactory {
278 id: menuItemFactory
299 id: menuItemFactory
279
300
280− anchors.left: parent.left; anchors.right: parent.right
301+ anchors {
302+ left: dialogColumn.left
303+ right: dialogColumn.right
304+ }
281
305
282 menuModel: unityMenuModel
306 menuModel: unityMenuModel
283 menuData: model
307 menuData: model
@@ -291,7 +315,7 @@ Item {
291 }
315 }
292 }
316 }
293
317
294− Item {
318+ Row {
295 id: buttonRow
319 id: buttonRow
296
320
297 objectName: "buttonRow"
321 objectName: "buttonRow"
@@ -300,70 +324,8 @@ Item {
300 right: parent.right
324 right: parent.right
301 }
325 }
302 visible: notification.type == Notification.SnapDecision && actionRepeater.count > 0
326 visible: notification.type == Notification.SnapDecision && actionRepeater.count > 0
303− height: units.gu(5)
327+ spacing: units.gu(1)
304−
328+ layoutDirection: Qt.RightToLeft
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
367
329
368 Repeater {
330 Repeater {
369 id: actionRepeater
331 id: actionRepeater
@@ -375,28 +337,105 @@ Item {
375 property string actionId: id
337 property string actionId: id
376 property string actionLabel: label
338 property string actionLabel: label
377
339
378− anchors {
379− left: parent.left
380− right: parent.right
381− }
382−
383 Component {
340 Component {
384 id: actionButton
341 id: actionButton
385
342
386 Button {
343 Button {
387 objectName: "button" + index
344 objectName: "button" + index
388− anchors {
345+ width: buttonRow.width / 2 - spacing
389− left: parent.left
390− right: parent.right
391− }
392−
393 text: loader.actionLabel
346 text: loader.actionLabel
394− height: units.gu(5)
347+ gradient: notification.hints["x-canonical-private-button-tint"] == "true" && index == 0 ? greenGradient : darkgreyGradient
395− gradient: UbuntuColors.greyGradient
396 onClicked: notification.notification.invokeAction(loader.actionId)
348 onClicked: notification.notification.invokeAction(loader.actionId)
397 }
349 }
398 }
350 }
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+ }
400 }
439 }
401 }
440 }
402 }
441 }
qml/Notifications/NotificationMenuItemFactory.qml+12−3
@@ -50,7 +50,10 @@ Loader {
50 Column {
50 Column {
51 spacing: units.gu(2)
51 spacing: units.gu(2)
52
52
53+ anchors {
54+ left: parent.left
53− anchors.left: parent.left; anchors.right: parent.right
55+ right: parent.right
56+ }
54
57
55 Component.onCompleted: {
58 Component.onCompleted: {
56 menuModel.loadExtendedAttributes(menuIndex, {"x-echo-mode-password": "bool"});
59 menuModel.loadExtendedAttributes(menuIndex, {"x-echo-mode-password": "bool"});
@@ -67,7 +70,10 @@ Loader {
67
70
68 // TODO using Qt.ImhNoPredictiveText here until lp #1291575 is fixed for ubuntu-ui-toolkit
71 // TODO using Qt.ImhNoPredictiveText here until lp #1291575 is fixed for ubuntu-ui-toolkit
69 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
72 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText
73+ anchors {
74+ left: parent.left
70− anchors.left: parent.left; anchors.right: parent.right
75+ right: parent.right
76+ }
71 echoMode: checkBox.checked ? TextInput.Normal : TextInput.Password
77 echoMode: checkBox.checked ? TextInput.Normal : TextInput.Password
72 height: units.gu(5)
78 height: units.gu(5)
73 onTextChanged: {
79 onTextChanged: {
@@ -98,7 +104,10 @@ Loader {
98 id: pinLock
104 id: pinLock
99
105
100 Lockscreen {
106 Lockscreen {
107+ anchors {
108+ left: parent.left
101− anchors.left: parent.left; anchors.right: parent.right
109+ right: parent.right
110+ }
102 height: menuFactory.maxHeight
111 height: menuFactory.maxHeight
103 placeholderText: i18n.tr("Please enter SIM PIN")
112 placeholderText: i18n.tr("Please enter SIM PIN")
104 background: shell.background
113 background: shell.background
qml/Notifications/Notifications.qml+17−1
@@ -36,8 +36,11 @@ ListView {
36 filterRole: UnityNotifications.ModelInterface.RoleType
36 filterRole: UnityNotifications.ModelInterface.RoleType
37 filterRegExp: RegExp(UnityNotifications.Notification.SnapDecision)
37 filterRegExp: RegExp(UnityNotifications.Notification.SnapDecision)
38 }
38 }
39− spacing: delegate.fullscreen ? 0 : units.gu(.5)
40
39
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
41 currentIndex: (currentIndex < 1 && count > 1) ? 1 : -1
44 currentIndex: (currentIndex < 1 && count > 1) ? 1 : -1
42
45
43 delegate: Notification {
46 delegate: Notification {
@@ -61,6 +64,19 @@ ListView {
61 // make sure there's no opacity-difference between the several
64 // make sure there's no opacity-difference between the several
62 // elements in a notification
65 // elements in a notification
63 layer.enabled: add.running || remove.running || populate.running
66 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+ }
64 }
80 }
65
81
66 populate: Transition {
82 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 {
36
36
37 function setDefaultItem() {
37 function setDefaultItem() {
38 // The leftmost indicator
38 // The leftmost indicator
39− setCurrentItem(0);
39+ setCurrentItemIndex(0);
40 }
40 }
41
41
42 function setCurrentItemIndex(index) {
42 function setCurrentItemIndex(index) {
qml/Panel/Indicators.qml+26−36
@@ -28,7 +28,6 @@ Showable {
28
28
29 property real openedHeight: units.gu(71)
29 property real openedHeight: units.gu(71)
30 property int panelHeight: units.gu(3)
30 property int panelHeight: units.gu(3)
31− property bool pinnedMode: true //should be set true if indicators menu can cover whole screen
32 property alias overFlowWidth: indicatorRow.overFlowWidth
31 property alias overFlowWidth: indicatorRow.overFlowWidth
33 property alias showAll: indicatorRow.showAll
32 property alias showAll: indicatorRow.showAll
34 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
33 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
@@ -38,26 +37,21 @@ Showable {
38 readonly property int lockThreshold: openedHeight / 2
37 readonly property int lockThreshold: openedHeight / 2
39 property bool fullyOpened: height == openedHeight
38 property bool fullyOpened: height == openedHeight
40 property bool partiallyOpened: height > panelHeight && !fullyOpened
39 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
42 property bool contentEnabled: true
41 property bool contentEnabled: true
43 property bool initalizeItem: true
42 property bool initalizeItem: true
44 readonly property alias content: menuContent
43 readonly property alias content: menuContent
45 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
44 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
45+ property bool enableHint: true
46+ property real showHintBottomMargin: 0
47+
48+ signal showTapped(point position)
46
49
47 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
50 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
48 // use its own values. Need to ask design about this.
51 // use its own values. Need to ask design about this.
49 showAnimation: StandardAnimation {
52 showAnimation: StandardAnimation {
50 property: "height"
53 property: "height"
51− duration: 350
52 to: openedHeight
54 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− }
61 }
55 }
62
56
63 hideAnimation: StandardAnimation {
57 hideAnimation: StandardAnimation {
@@ -67,16 +61,24 @@ Showable {
67 easing.type: Easing.OutCubic
61 easing.type: Easing.OutCubic
68 }
62 }
69
63
64+ onOpenedHeightChanged: {
65+ if (showAnimation.running) {
66+ showAnimation.restart();
67+ } else if (indicators.shown) {
68+ height = openedHeight;
69+ }
70+ }
71+
70 height: panelHeight
72 height: panelHeight
71− onHeightChanged: updateRevealProgressState(indicators.height - panelHeight, true)
73+ onHeightChanged: updateRevealProgressState(indicators.height - panelHeight - showHintBottomMargin, true)
72
74
73 function updateRevealProgressState(revealProgress, enableRelease) {
75 function updateRevealProgressState(revealProgress, enableRelease) {
74 if (!showAnimation.running && !hideAnimation.running) {
76 if (!showAnimation.running && !hideAnimation.running) {
75 if (revealProgress === 0) {
77 if (revealProgress === 0) {
76 indicators.state = "initial";
78 indicators.state = "initial";
77− } else if (revealProgress > 0 && revealProgress <= hintValue) {
79+ } else if (enableHint && revealProgress > 0 && revealProgress <= hintValue) {
78 indicators.state = "hint";
80 indicators.state = "hint";
79− } else if (revealProgress > hintValue && revealProgress < lockThreshold) {
81+ } else if ((!enableHint || revealProgress > hintValue) && revealProgress < lockThreshold) {
80 indicators.state = "reveal";
82 indicators.state = "reveal";
81 } else if (revealProgress >= lockThreshold && lockThreshold > 0) {
83 } else if (revealProgress >= lockThreshold && lockThreshold > 0) {
82 indicators.state = "locked";
84 indicators.state = "locked";
@@ -171,17 +173,6 @@ Showable {
171 }
173 }
172 }
174 }
173
175
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−
185 VisibleIndicators {
176 VisibleIndicators {
186 id: visibleIndicators
177 id: visibleIndicators
187 }
178 }
@@ -197,6 +188,7 @@ Showable {
197 bottom: handle.top
188 bottom: handle.top
198 }
189 }
199 indicatorsModel: visibleIndicators.model
190 indicatorsModel: visibleIndicators.model
191+ visible: indicators.partiallyOpened || indicators.fullyOpened
200 clip: !indicators.fullyOpened
192 clip: !indicators.fullyOpened
201 activeHeader: indicators.state == "hint" || indicators.state == "reveal"
193 activeHeader: indicators.state == "hint" || indicators.state == "reveal"
202 enabled: contentEnabled
194 enabled: contentEnabled
@@ -229,6 +221,7 @@ Showable {
229 }
221 }
230 height: Math.max(Math.min(handleImage.height, indicators.height - handleImage.height), 0)
222 height: Math.max(Math.min(handleImage.height, indicators.height - handleImage.height), 0)
231 clip: height < handleImage.height
223 clip: height < handleImage.height
224+ visible: menuContent.visible
232
225
233 BorderImage {
226 BorderImage {
234 id: handleImage
227 id: handleImage
@@ -245,10 +238,6 @@ Showable {
245 }
238 }
246 }
239 }
247
240
248− PanelBackground {
249− anchors.fill: indicatorRow
250− }
251−
252 IndicatorRow {
241 IndicatorRow {
253 id: indicatorRow
242 id: indicatorRow
254 objectName: "indicatorRow"
243 objectName: "indicatorRow"
@@ -276,6 +265,7 @@ Showable {
276 indicators.calculateCurrentItem(touchX, false);
265 indicators.calculateCurrentItem(touchX, false);
277 } else {
266 } else {
278 indicators.state = "commit";
267 indicators.state = "commit";
268+ indicatorRow.currentItemOffset = 0;
279 }
269 }
280 }
270 }
281
271
@@ -356,24 +346,27 @@ Showable {
356 id: showDragHandle
346 id: showDragHandle
357 anchors.bottom: parent.bottom
347 anchors.bottom: parent.bottom
358 // go beyond parent so that it stays reachable, at the top of the screen.
348 // go beyond parent so that it stays reachable, at the top of the screen.
359− anchors.bottomMargin: pinnedMode ? 0 : -panelHeight
349+ anchors.bottomMargin: showHintBottomMargin
360 anchors.left: parent.left
350 anchors.left: parent.left
361 anchors.right: parent.right
351 anchors.right: parent.right
362 height: panelHeight
352 height: panelHeight
363 direction: Direction.Downwards
353 direction: Direction.Downwards
364 enabled: !indicators.shown && indicators.available
354 enabled: !indicators.shown && indicators.available
365− hintDisplacement: pinnedMode ? indicators.hintValue : 0
355+ hintDisplacement: enableHint ? indicators.hintValue : 0
366 autoCompleteDragThreshold: maxTotalDragDistance / 2
356 autoCompleteDragThreshold: maxTotalDragDistance / 2
367 stretch: true
357 stretch: true
368 maxTotalDragDistance: openedHeight - panelHeight
358 maxTotalDragDistance: openedHeight - panelHeight
369− distanceThreshold: pinnedMode ? 0 : units.gu(3)
359+ distanceThreshold: panelHeight
370
360
371 onStatusChanged: {
361 onStatusChanged: {
372 if (status === DirectionalDragArea.Recognized) {
362 if (status === DirectionalDragArea.Recognized) {
373 menuContent.activateContent();
363 menuContent.activateContent();
374 }
364 }
375 }
365 }
366+
367+ onTapped: showTapped(Qt.point(touchSceneX, touchSceneY));
376 }
368 }
369+
377 DragHandle {
370 DragHandle {
378 id: hideDragHandle
371 id: hideDragHandle
379 anchors.fill: handle
372 anchors.fill: handle
@@ -396,10 +389,6 @@ Showable {
396 },
389 },
397 State {
390 State {
398 name: "hint"
391 name: "hint"
399− PropertyChanges {
400− target: indicatorRow;
401− y: pinnedMode ? 0 : panelHeight
402− }
403 StateChangeScript {
392 StateChangeScript {
404 script: {
393 script: {
405 if (d.activeDragHandle) {
394 if (d.activeDragHandle) {
@@ -432,5 +421,6 @@ Showable {
432 Component.onCompleted: initialise();
421 Component.onCompleted: initialise();
433 function initialise() {
422 function initialise() {
434 visibleIndicators.load(profile);
423 visibleIndicators.load(profile);
424+ indicatorRow.setDefaultItem();
435 }
425 }
436}
426}
qml/Panel/Indicators/DefaultIndicatorPage.qml+3−2
@@ -22,7 +22,7 @@ import QtQuick 2.0
22import Ubuntu.Components 0.1 as Components
22import Ubuntu.Components 0.1 as Components
23import Unity.Indicators 0.1 as Indicators
23import Unity.Indicators 0.1 as Indicators
24
24
25−Indicators.IndicatorBase {
25+IndicatorBase {
26 id: main
26 id: main
27
27
28 //const
28 //const
@@ -174,8 +174,9 @@ Indicators.IndicatorBase {
174 }
174 }
175 }
175 }
176
176
177− Indicators.MenuItemFactory {
177+ MenuItemFactory {
178 id: factory
178 id: factory
179+ rootModel: main.menuModel ? main.menuModel : null
179 menuModel: mainMenu.model ? mainMenu.model : null
180 menuModel: mainMenu.model ? mainMenu.model : null
180 }
181 }
181
182
qml/Panel/Indicators/DefaultIndicatorWidget.qml+22−31
@@ -19,12 +19,12 @@
19
19
20import QtQuick 2.0
20import QtQuick 2.0
21import Ubuntu.Components 0.1
21import Ubuntu.Components 0.1
22−import Unity.Indicators 0.1 as Indicators
22+import Ubuntu.Settings.Components 0.1
23
23
24−Indicators.IndicatorBase {
24+IndicatorBase {
25 id: indicatorWidget
25 id: indicatorWidget
26
26
27− property int iconSize: height
27+ property int iconSize: units.gu(2)
28 property alias leftLabel: itemLeftLabel.text
28 property alias leftLabel: itemLeftLabel.text
29 property alias rightLabel: itemRightLabel.text
29 property alias rightLabel: itemRightLabel.text
30 property var icons: undefined
30 property var icons: undefined
@@ -32,9 +32,16 @@ Indicators.IndicatorBase {
32 width: itemRow.width
32 width: itemRow.width
33 enabled: false
33 enabled: false
34
34
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+
35 Row {
43 Row {
36 id: itemRow
44 id: itemRow
37− width: childrenRect.width
38 objectName: "itemRow"
45 objectName: "itemRow"
39 anchors {
46 anchors {
40 top: parent.top
47 top: parent.top
@@ -44,7 +51,7 @@ Indicators.IndicatorBase {
44
51
45 Label {
52 Label {
46 id: itemLeftLabel
53 id: itemLeftLabel
47− width: guRoundUp(implicitWidth)
54+ width: contentWidth + units.gu(1)
48 objectName: "leftLabel"
55 objectName: "leftLabel"
49 color: Theme.palette.selected.backgroundText
56 color: Theme.palette.selected.backgroundText
50 opacity: 0.8
57 opacity: 0.8
@@ -52,10 +59,10 @@ Indicators.IndicatorBase {
52 fontSize: "medium"
59 fontSize: "medium"
53 anchors.verticalCenter: parent.verticalCenter
60 anchors.verticalCenter: parent.verticalCenter
54 visible: text != ""
61 visible: text != ""
62+ horizontalAlignment: Text.AlignHCenter
55 }
63 }
56
64
57 Row {
65 Row {
58− width: childrenRect.width
59 anchors {
66 anchors {
60 top: parent.top
67 top: parent.top
61 bottom: parent.bottom
68 bottom: parent.bottom
@@ -65,22 +72,16 @@ Indicators.IndicatorBase {
65 model: indicatorWidget.icons
72 model: indicatorWidget.icons
66
73
67 Item {
74 Item {
68− width: guRoundUp(itemImage.width)
75+ width: itemImage.width + units.gu(1)
69− height: indicatorWidget.iconSize
76+ anchors { top: parent.top; bottom: parent.bottom }
70
77
71− Image {
78+ StatusIcon {
72 id: itemImage
79 id: itemImage
73− objectName: "itemImage"
80+ height: indicatorWidget.iconSize
74− visible: source != ""
81+ anchors.centerIn: parent
75 source: modelData
82 source: modelData
76− height: parent.height
83+ sets: ["status", "actions"]
77− anchors.horizontalCenter: parent.horizontalCenter
84+ color: "#CCCCCC"
78− fillMode: Image.PreserveAspectFit
79−
80− sourceSize {
81− width: indicatorWidget.iconSize
82− height: indicatorWidget.iconSize
83− }
84 }
85 }
85 }
86 }
86 }
87 }
@@ -88,7 +89,7 @@ Indicators.IndicatorBase {
88
89
89 Label {
90 Label {
90 id: itemRightLabel
91 id: itemRightLabel
91− width: guRoundUp(implicitWidth)
92+ width: contentWidth + units.gu(1)
92 objectName: "rightLabel"
93 objectName: "rightLabel"
93 color: Theme.palette.selected.backgroundText
94 color: Theme.palette.selected.backgroundText
94 opacity: 0.8
95 opacity: 0.8
@@ -96,20 +97,10 @@ Indicators.IndicatorBase {
96 fontSize: "medium"
97 fontSize: "medium"
97 anchors.verticalCenter: parent.verticalCenter
98 anchors.verticalCenter: parent.verticalCenter
98 visible: text != ""
99 visible: text != ""
100+ horizontalAlignment: Text.AlignHCenter
99 }
101 }
100 }
102 }
101
103
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−
113 onRootActionStateChanged: {
104 onRootActionStateChanged: {
114 if (rootActionState == undefined) {
105 if (rootActionState == undefined) {
115 leftLabel = "";
106 leftLabel = "";
plugins/Unity/Indicators/qml/IndicatorBase.qml → qml/Panel/Indicators/IndicatorBase.qmlrenamed+2−3
@@ -18,8 +18,7 @@
18 */
18 */
19
19
20import QtQuick 2.0
20import QtQuick 2.0
21−import QMenuModel 0.1 as QMenuModel
22−import Unity.Indicators 0.1 as Indicators
21+import Unity.Indicators 0.1
23
22
24Item {
23Item {
25 id: indicatorItem
24 id: indicatorItem
@@ -43,7 +42,7 @@ Item {
43 menuObjectPath: indicatorItem.deviceMenuObjectPath
42 menuObjectPath: indicatorItem.deviceMenuObjectPath
44 }
43 }
45
44
46− property var rootActionState: Indicators.RootActionState {
45+ property RootActionState rootActionState: RootActionState {
47 menu: menuModel
46 menu: menuModel
48 onUpdated: indicatorItem.rootActionStateChanged()
47 onUpdated: indicatorItem.rootActionStateChanged()
49 }
48 }
qml/Panel/Indicators/IndicatorDelegate.qml+1−2
@@ -18,9 +18,8 @@
18 */
18 */
19
19
20import QtQuick 2.0
20import QtQuick 2.0
21−import Unity.Indicators 0.1 as Indicators
22
21
23−Indicators.IndicatorBase {
22+IndicatorBase {
24 enabled: false
23 enabled: false
25
24
26 onRootActionStateChanged: {
25 onRootActionStateChanged: {
tests/mocks/Unity/Indicators/MenuItemFactory.qml → qml/Panel/Indicators/IndicatorsLight.qmlrenamed+14−14
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2014 Canonical Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
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
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -14,25 +14,25 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
15 *
16 * Authors:
16 * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
17+ * Renato Araujo Oliveira Filho <renato@canonical.com>
18 */
18 */
19
19
20import QtQuick 2.0
20import QtQuick 2.0
21−import Ubuntu.Components.ListItems 0.1 as ListItem
21+import Powerd 0.1
22+import Lights 0.1
22
23
23−Item {
24+QtObject {
24− id: menuFactory
25+ id: root
25
26
26− property var menuModel: null
27+ Component.onDestruction: Lights.state = Lights.Off
27
28
28− Component {
29+ // QtObject does not have children
29− id: standardMenu;
30+ property var _connections: Connections {
30− ListItem.Standard {
31+ id: powerConnection
31− objectName: "standardMenu"
32− }
33− }
34
32
35− function load(modelData) {
33+ target: Powerd
36− return standardMenu;
34+ onDisplayPowerStateChange: {
35+ Lights.state = (status === Powerd.Off) ? Lights.On : Lights.Off
36+ }
37 }
37 }
38}
38}
plugins/Unity/Indicators/qml/MenuItemFactory.qml → qml/Panel/Indicators/MenuItemFactory.qmlrenamed+178−20
@@ -19,7 +19,8 @@
19
19
20import QtQuick 2.0
20import QtQuick 2.0
21import Ubuntu.Settings.Menus 0.1 as Menus
21import Ubuntu.Settings.Menus 0.1 as Menus
22+import Ubuntu.Settings.Components 0.1 as SettingsComponents
22−import QMenuModel 0.1 as QMenuModel
23+import QMenuModel 0.1
23import Utils 0.1 as Utils
24import Utils 0.1 as Utils
24import Ubuntu.Components.ListItems 0.1 as ListItems
25import Ubuntu.Components.ListItems 0.1 as ListItems
25import Ubuntu.Components 0.1
26import Ubuntu.Components 0.1
@@ -27,20 +28,23 @@ import Ubuntu.Components 0.1
27Item {
28Item {
28 id: menuFactory
29 id: menuFactory
29
30
31+ property var rootModel: null
30 property var menuModel: null
32 property var menuModel: null
31
33
32 property var _map: {
34 property var _map: {
33 "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
35 "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
34 "unity.widgets.systemsettings.tablet.switch" : switchMenu,
36 "unity.widgets.systemsettings.tablet.switch" : switchMenu,
35
37
36− "com.canonical.indicator.button" : buttonMenu,
38+ "com.canonical.indicator.button" : buttonMenu,
37− "com.canonical.indicator.div" : separatorMenu,
39+ "com.canonical.indicator.div" : separatorMenu,
38− "com.canonical.indicator.section" : sectionMenu,
40+ "com.canonical.indicator.section" : sectionMenu,
39− "com.canonical.indicator.progress" : progressMenu,
41+ "com.canonical.indicator.progress" : progressMenu,
40− "com.canonical.indicator.slider" : sliderMenu,
42+ "com.canonical.indicator.slider" : sliderMenu,
41− "com.canonical.indicator.switch" : switchMenu,
43+ "com.canonical.indicator.switch" : switchMenu,
42− "com.canonical.indicator.alarm" : alarmMenu,
44+ "com.canonical.indicator.alarm" : alarmMenu,
43− "com.canonical.indicator.appointment" : appointmentMenu,
45+ "com.canonical.indicator.appointment" : appointmentMenu,
46+ "com.canonical.indicator.transfer" : transferMenu,
47+ "com.canonical.indicator.button-section" : buttonSectionMenu,
44
48
45 "com.canonical.indicator.messages.messageitem" : messageItem,
49 "com.canonical.indicator.messages.messageitem" : messageItem,
46 "com.canonical.indicator.messages.sourceitem" : groupedMessage,
50 "com.canonical.indicator.messages.sourceitem" : groupedMessage,
@@ -65,6 +69,7 @@ Item {
65
69
66 Component {
70 Component {
67 id: separatorMenu;
71 id: separatorMenu;
72+
68 Menus.SeparatorMenu {
73 Menus.SeparatorMenu {
69 objectName: "separatorMenu"
74 objectName: "separatorMenu"
70 }
75 }
@@ -72,6 +77,7 @@ Item {
72
77
73 Component {
78 Component {
74 id: sliderMenu;
79 id: sliderMenu;
80+
75 Menus.SliderMenu {
81 Menus.SliderMenu {
76 objectName: "sliderMenu"
82 objectName: "sliderMenu"
77 property QtObject menuData: null
83 property QtObject menuData: null
@@ -123,6 +129,7 @@ Item {
123
129
124 Component {
130 Component {
125 id: buttonMenu;
131 id: buttonMenu;
132+
126 Menus.ButtonMenu {
133 Menus.ButtonMenu {
127 objectName: "buttonMenu"
134 objectName: "buttonMenu"
128 property QtObject menuData: null
135 property QtObject menuData: null
@@ -134,12 +141,12 @@ Item {
134
141
135 onTriggered: {
142 onTriggered: {
136 menuModel.activate(menuIndex);
143 menuModel.activate(menuIndex);
137− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
138 }
144 }
139 }
145 }
140 }
146 }
141 Component {
147 Component {
142 id: sectionMenu;
148 id: sectionMenu;
149+
143 Menus.SectionMenu {
150 Menus.SectionMenu {
144 objectName: "sectionMenu"
151 objectName: "sectionMenu"
145 property QtObject menuData: null
152 property QtObject menuData: null
@@ -152,6 +159,7 @@ Item {
152
159
153 Component {
160 Component {
154 id: progressMenu;
161 id: progressMenu;
162+
155 Menus.ProgressValueMenu {
163 Menus.ProgressValueMenu {
156 objectName: "progressMenu"
164 objectName: "progressMenu"
157 property QtObject menuData: null
165 property QtObject menuData: null
@@ -166,7 +174,8 @@ Item {
166
174
167 Component {
175 Component {
168 id: standardMenu;
176 id: standardMenu;
169− ListItems.Standard {
177+
178+ Menus.StandardMenu {
170 objectName: "standardMenu"
179 objectName: "standardMenu"
171 property QtObject menuData: null
180 property QtObject menuData: null
172 property int menuIndex: -1
181 property int menuIndex: -1
@@ -177,13 +186,13 @@ Item {
177
186
178 onTriggered: {
187 onTriggered: {
179 menuModel.activate(menuIndex);
188 menuModel.activate(menuIndex);
180− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
181 }
189 }
182 }
190 }
183 }
191 }
184
192
185 Component {
193 Component {
186 id: checkableMenu;
194 id: checkableMenu;
195+
187 Menus.CheckableMenu {
196 Menus.CheckableMenu {
188 objectName: "checkableMenu"
197 objectName: "checkableMenu"
189 property QtObject menuData: null
198 property QtObject menuData: null
@@ -195,7 +204,6 @@ Item {
195
204
196 onTriggered: {
205 onTriggered: {
197 menuModel.activate(menuIndex);
206 menuModel.activate(menuIndex);
198− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
199 }
207 }
200 }
208 }
201 }
209 }
@@ -203,6 +211,7 @@ Item {
203
211
204 Component {
212 Component {
205 id: switchMenu;
213 id: switchMenu;
214+
206 Menus.SwitchMenu {
215 Menus.SwitchMenu {
207 objectName: "switchMenu"
216 objectName: "switchMenu"
208 property QtObject menuData: null
217 property QtObject menuData: null
@@ -215,13 +224,13 @@ Item {
215
224
216 onTriggered: {
225 onTriggered: {
217 menuModel.activate(menuIndex);
226 menuModel.activate(menuIndex);
218− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
219 }
227 }
220 }
228 }
221 }
229 }
222
230
223 Component {
231 Component {
224 id: alarmMenu;
232 id: alarmMenu;
233+
225 Menus.EventMenu {
234 Menus.EventMenu {
226 objectName: "alarmMenu"
235 objectName: "alarmMenu"
227 property QtObject menuData: null
236 property QtObject menuData: null
@@ -259,6 +268,7 @@ Item {
259
268
260 Component {
269 Component {
261 id: appointmentMenu;
270 id: appointmentMenu;
271+
262 Menus.EventMenu {
272 Menus.EventMenu {
263 objectName: "appointmentMenu"
273 objectName: "appointmentMenu"
264 property QtObject menuData: null
274 property QtObject menuData: null
@@ -298,6 +308,7 @@ Item {
298
308
299 Component {
309 Component {
300 id: wifiSection;
310 id: wifiSection;
311+
301 Menus.SectionMenu {
312 Menus.SectionMenu {
302 objectName: "wifiSection"
313 objectName: "wifiSection"
303 property QtObject menuData: null
314 property QtObject menuData: null
@@ -324,6 +335,7 @@ Item {
324
335
325 Component {
336 Component {
326 id: accessPoint;
337 id: accessPoint;
338+
327 Menus.AccessPointMenu {
339 Menus.AccessPointMenu {
328 objectName: "accessPoint"
340 objectName: "accessPoint"
329 property QtObject menuData: null
341 property QtObject menuData: null
@@ -331,7 +343,7 @@ Item {
331 property int menuIndex: -1
343 property int menuIndex: -1
332 property var extendedData: menuData && menuData.ext || undefined
344 property var extendedData: menuData && menuData.ext || undefined
333
345
334− property var strengthAction: QMenuModel.UnityMenuAction {
346+ property var strengthAction: UnityMenuAction {
335 model: menuModel
347 model: menuModel
336 index: menuIndex
348 index: menuIndex
337 name: getExtendedProperty(extendedData, "xCanonicalWifiApStrengthAction", "")
349 name: getExtendedProperty(extendedData, "xCanonicalWifiApStrengthAction", "")
@@ -352,7 +364,6 @@ Item {
352 }
364 }
353 onTriggered: {
365 onTriggered: {
354 menuModel.activate(menuIndex);
366 menuModel.activate(menuIndex);
355− shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
356 }
367 }
357
368
358 function loadAttributes() {
369 function loadAttributes() {
@@ -440,6 +451,7 @@ Item {
440
451
441 Component {
452 Component {
442 id: messageItem
453 id: messageItem
454+
443 MessageMenuItemFactory {
455 MessageMenuItemFactory {
444 objectName: "messageItem"
456 objectName: "messageItem"
445 menuModel: menuFactory.menuModel
457 menuModel: menuFactory.menuModel
@@ -448,6 +460,7 @@ Item {
448
460
449 Component {
461 Component {
450 id: groupedMessage
462 id: groupedMessage
463+
451 Menus.GroupedMessageMenu {
464 Menus.GroupedMessageMenu {
452 objectName: "groupedMessage"
465 objectName: "groupedMessage"
453 property QtObject menuData: null
466 property QtObject menuData: null
@@ -469,7 +482,6 @@ Item {
469 }
482 }
470 onClicked: {
483 onClicked: {
471 menuModel.activate(menuIndex, true);
484 menuModel.activate(menuIndex, true);
472− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
473 }
485 }
474 onDismissed: {
486 onDismissed: {
475 menuModel.activate(menuIndex, false);
487 menuModel.activate(menuIndex, false);
@@ -484,6 +496,7 @@ Item {
484
496
485 Component {
497 Component {
486 id: mediaPayerMenu;
498 id: mediaPayerMenu;
499+
487 Menus.MediaPlayerMenu {
500 Menus.MediaPlayerMenu {
488 objectName: "mediaPayerMenu"
501 objectName: "mediaPayerMenu"
489 property QtObject menuData: null
502 property QtObject menuData: null
@@ -510,6 +523,7 @@ Item {
510
523
511 Component {
524 Component {
512 id: playbackItemMenu;
525 id: playbackItemMenu;
526+
513 Menus.PlaybackItemMenu {
527 Menus.PlaybackItemMenu {
514 objectName: "playbackItemMenu"
528 objectName: "playbackItemMenu"
515 property QtObject menuData: null
529 property QtObject menuData: null
@@ -517,17 +531,17 @@ Item {
517 property int menuIndex: -1
531 property int menuIndex: -1
518 property var extendedData: menuData && menuData.ext || undefined
532 property var extendedData: menuData && menuData.ext || undefined
519
533
520− property var playAction: QMenuModel.UnityMenuAction {
534+ property var playAction: UnityMenuAction {
521 model: menuModel
535 model: menuModel
522 index: menuIndex
536 index: menuIndex
523 name: getExtendedProperty(extendedData, "xCanonicalPlayAction", "")
537 name: getExtendedProperty(extendedData, "xCanonicalPlayAction", "")
524 }
538 }
525− property var nextAction: QMenuModel.UnityMenuAction {
539+ property var nextAction: UnityMenuAction {
526 model: menuModel
540 model: menuModel
527 index: menuIndex
541 index: menuIndex
528 name: getExtendedProperty(extendedData, "xCanonicalNextAction", "")
542 name: getExtendedProperty(extendedData, "xCanonicalNextAction", "")
529 }
543 }
530− property var previousAction: QMenuModel.UnityMenuAction {
544+ property var previousAction: UnityMenuAction {
531 model: menuModel
545 model: menuModel
532 index: menuIndex
546 index: menuIndex
533 name: getExtendedProperty(extendedData, "xCanonicalPreviousAction", "")
547 name: getExtendedProperty(extendedData, "xCanonicalPreviousAction", "")
@@ -564,6 +578,150 @@ Item {
564 }
578 }
565 }
579 }
566
580
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+
567 function load(modelData) {
725 function load(modelData) {
568 if (modelData.type !== undefined) {
726 if (modelData.type !== undefined) {
569 var component = _map[modelData.type];
727 var component = _map[modelData.type];
plugins/Unity/Indicators/qml/MessageMenuItemFactory.qml → qml/Panel/Indicators/MessageMenuItemFactory.qmlrenamed+3−3
@@ -77,6 +77,7 @@ Item {
77
77
78 Component {
78 Component {
79 id: simpleTextMessage
79 id: simpleTextMessage
80+
80 Menus.SimpleTextMessageMenu {
81 Menus.SimpleTextMessageMenu {
81 id: message
82 id: message
82 objectName: "simpleTextMessage"
83 objectName: "simpleTextMessage"
@@ -94,7 +95,6 @@ Item {
94
95
95 onAppActivated: {
96 onAppActivated: {
96 menuModel.activate(menuIndex, true);
97 menuModel.activate(menuIndex, true);
97− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
98 }
98 }
99 onDismissed: {
99 onDismissed: {
100 menuModel.activate(menuIndex, false);
100 menuModel.activate(menuIndex, false);
@@ -115,6 +115,7 @@ Item {
115
115
116 Component {
116 Component {
117 id: textMessage
117 id: textMessage
118+
118 Menus.TextMessageMenu {
119 Menus.TextMessageMenu {
119 id: message
120 id: message
120 objectName: "textMessage"
121 objectName: "textMessage"
@@ -142,7 +143,6 @@ Item {
142
143
143 onAppActivated: {
144 onAppActivated: {
144 menuModel.activate(menuIndex, true);
145 menuModel.activate(menuIndex, true);
145− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
146 }
146 }
147 onDismissed: {
147 onDismissed: {
148 menuModel.activate(menuIndex, false);
148 menuModel.activate(menuIndex, false);
@@ -165,6 +165,7 @@ Item {
165 }
165 }
166 Component {
166 Component {
167 id: snapDecision
167 id: snapDecision
168+
168 Menus.SnapDecisionMenu {
169 Menus.SnapDecisionMenu {
169 id: message
170 id: message
170 objectName: "snapDecision"
171 objectName: "snapDecision"
@@ -201,7 +202,6 @@ Item {
201
202
202 onAppActivated: {
203 onAppActivated: {
203 menuModel.activate(menuIndex, true);
204 menuModel.activate(menuIndex, true);
204− shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
205 }
205 }
206 onDismissed: {
206 onDismissed: {
207 menuModel.activate(menuIndex, false);
207 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 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19+import Unity.Application 0.1
19import "../Components"
20import "../Components"
21+import "../Components/ListItems"
20
22
21Item {
23Item {
22 id: root
24 id: root
23− readonly property real panelHeight: units.gu(3) + units.dp(2)
25+ readonly property real panelHeight: indicatorArea.y + d.indicatorHeight
24− property real indicatorsMenuWidth: (shell.width > units.gu(60)) ? units.gu(40) : shell.width
25− property alias indicators: indicatorsMenu
26+ property alias indicators: __indicators
27+ property alias callHint: __callHint
26 property bool fullscreenMode: false
28 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− }
77
29
78 Rectangle {
30 Rectangle {
79 id: darkenedArea
31 id: darkenedArea
80 property real darkenedOpacity: 0.6
32 property real darkenedOpacity: 0.6
81 anchors {
33 anchors {
34+ top: parent.top
35+ topMargin: panelHeight
82 left: parent.left
36 left: parent.left
83 right: parent.right
37 right: parent.right
84− top: panelBackground.bottom
85 bottom: parent.bottom
38 bottom: parent.bottom
86 }
39 }
87 color: "black"
40 color: "black"
88− opacity: indicatorsMenu.unitProgress * darkenedOpacity
41+ opacity: indicators.unitProgress * darkenedOpacity
42+
89 MouseArea {
43 MouseArea {
90 anchors.fill: parent
44 anchors.fill: parent
91− enabled: indicatorsMenu.shown
45+ enabled: indicators.shown
92− onClicked: if (indicatorsMenu.fullyOpened) indicatorsMenu.hide();
46+ onClicked: if (indicators.fullyOpened) indicators.hide();
93 }
47 }
94 }
48 }
95
49
96− Indicators {
50+ Item {
97− id: indicatorsMenu
51+ id: indicatorArea
98− objectName: "indicators"
52+ objectName: "indicatorArea"
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− }
109
53
110− PanelSeparatorLine {
54+ anchors.fill: parent
111− id: indicatorsSeparatorLine
55+
112− visible: true
56+ Behavior on anchors.topMargin { StandardAnimation {} }
113− anchors {
57+
114− left: indicatorsMenu.left
58+ BorderImage {
115− right: indicatorsMenu.right
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"
116 }
67 }
117− y: indicatorsMenu.visualBottom
118− }
119
68
120− BorderImage {
69+ VerticalThinDivider {
121− id: dropShadow
70+ id: indicatorDividor
122− anchors {
71+ anchors {
123− top: indicators.top
72+ top: indicators.top
124− bottom: indicatorsSeparatorLine.bottom
73+ bottom: indicators.bottom
125− left: indicators.left
74+ right: indicators.left
126− right: indicators.right
75+
127− margins: -units.gu(1)
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()
128 }
115 }
129− visible: indicatorsMenu.height > indicatorsMenu.panelHeight
130− source: "graphics/rectangular_dropshadow.sci"
131− }
132
116
133− SearchIndicator {
117+ Indicators {
134− id: search
118+ id: __indicators
135− objectName: "search"
119+ objectName: "indicators"
136− enabled: root.searchVisible
120+
121+ anchors {
122+ top: parent.top
123+ right: parent.right
124+ }
137
125
138− state: {
126+ width: root.width
139− if (parent.width < indicatorsMenu.width + width) {
127+ shown: false
140− if (indicatorsMenu.state != "initial") {
128+ panelHeight: units.gu(3)
141− return "hidden";
129+ openedHeight: root.height
130+ overFlowWidth: {
131+ if (callHint.visible) {
132+ return Math.max(root.width - (callHint.width + units.gu(2)), 0)
142 }
133 }
134+ return root.width
143 }
135 }
144− if (root.searchVisible && !indicatorsMenu.showAll) {
136+
145− return "visible";
137+ enableHint: !callHint.active && !fullscreenMode
138+ showHintBottomMargin: fullscreenMode ? -panelHeight : 0
139+
140+ onShowTapped: {
141+ if (callHint.active) {
142+ callHint.showLiveCall();
143+ }
146 }
144 }
145+ }
147
146
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"
149 }
155 }
150
156
151− height: __panelMinusSeparatorLineHeight
157+ PanelSeparatorLine {
158+ id: indicatorsSeparatorLine
159+ visible: true
152− anchors {
160+ anchors {
153− top: panelBackground.top
161+ top: indicators.bottom
154− left: panelBackground.left
162+ left: indicatorDividor.left
163+ right: indicators.right
164+ }
155 }
165 }
166+ }
156
167
157− onClicked: root.searchClicked()
168+ QtObject {
169+ id: d
170+ readonly property real indicatorHeight: indicators.panelHeight + indicatorsSeparatorLine.height
158 }
171 }
159
172
160 states: [
173 states: [
161 State {
174 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
163 when: !fullscreenMode
176 when: !fullscreenMode
164− PropertyChanges { target: panelBackground; y: 0 }
177+ PropertyChanges {
178+ target: indicatorArea;
179+ anchors.topMargin: 0
180+ }
165 },
181 },
166 State {
182 State {
167− name: "out" //pushed off screen
183+ name: "offscreen" //pushed off screen
168 when: fullscreenMode
184 when: fullscreenMode
169− PropertyChanges { target: panelBackground; y: -panelHeight }
185+ PropertyChanges {
186+ target: indicatorArea;
187+ anchors.topMargin: indicators.state === "initial" ? -d.indicatorHeight : 0
188+ }
170 }
189 }
171 ]
190 ]
172}
191}
qml/ScopeTool.qml−1
@@ -73,7 +73,6 @@ Rectangle {
73 id: dashContent
73 id: dashContent
74
74
75 model: filteredScopes
75 model: filteredScopes
76− searchHistory: SearchHistoryModel { }
77 property var scope: scopes.getScope(currentIndex)
76 property var scope: scopes.getScope(currentIndex)
78
77
79 anchors {
78 anchors {
qml/Shell.qml+270−242
@@ -21,6 +21,7 @@ import Unity.Application 0.1
21import Ubuntu.Components 0.1
21import Ubuntu.Components 0.1
22import Ubuntu.Gestures 0.1
22import Ubuntu.Gestures 0.1
23import Unity.Launcher 0.1
23import Unity.Launcher 0.1
24+import Utils 0.1
24import LightDM 0.1 as LightDM
25import LightDM 0.1 as LightDM
25import Powerd 0.1
26import Powerd 0.1
26import SessionBroadcast 0.1
27import SessionBroadcast 0.1
@@ -30,10 +31,11 @@ import "Launcher"
30import "Panel"
31import "Panel"
31import "Components"
32import "Components"
32import "Notifications"
33import "Notifications"
34+import "Stages"
33import Unity.Notifications 1.0 as NotificationBackend
35import Unity.Notifications 1.0 as NotificationBackend
34import Unity.Session 0.1
36import Unity.Session 0.1
35
37
36−FocusScope {
38+Item {
37 id: shell
39 id: shell
38
40
39 // this is only here to select the width / height of the window if not running fullscreen
41 // this is only here to select the width / height of the window if not running fullscreen
@@ -46,7 +48,7 @@ FocusScope {
46 property url background
48 property url background
47 readonly property real panelHeight: panel.panelHeight
49 readonly property real panelHeight: panel.panelHeight
48
50
49− property bool dashShown: dash.shown
51+ property bool dashShown: dash.shown && dash.available && underlay.visible
50
52
51 property bool sideStageEnabled: shell.width >= units.gu(100)
53 property bool sideStageEnabled: shell.width >= units.gu(100)
52 readonly property string focusedApplicationId: ApplicationManager.focusedApplicationId
54 readonly property string focusedApplicationId: ApplicationManager.focusedApplicationId
@@ -54,14 +56,10 @@ FocusScope {
54 function activateApplication(appId) {
56 function activateApplication(appId) {
55 if (ApplicationManager.findApplication(appId)) {
57 if (ApplicationManager.findApplication(appId)) {
56 ApplicationManager.requestFocusApplication(appId);
58 ApplicationManager.requestFocusApplication(appId);
57− stages.show(true);
58− if (stages.locked && ApplicationManager.focusedApplicationId == appId) {
59− applicationsDisplayLoader.item.select(appId);
60− }
61 } else {
59 } else {
62 var execFlags = shell.sideStageEnabled ? ApplicationManager.NoFlag : ApplicationManager.ForceMainStage;
60 var execFlags = shell.sideStageEnabled ? ApplicationManager.NoFlag : ApplicationManager.ForceMainStage;
63 ApplicationManager.startApplication(appId, execFlags);
61 ApplicationManager.startApplication(appId, execFlags);
64− stages.show(false);
62+ stages.show();
65 }
63 }
66 }
64 }
67
65
@@ -88,82 +86,74 @@ FocusScope {
88 id: volumeControl
86 id: volumeControl
89 }
87 }
90
88
89+ WindowKeysFilter {
90+ // Handle but do not filter out volume keys
91− Keys.onVolumeUpPressed: volumeControl.volumeUp()
91+ Keys.onVolumeUpPressed: { volumeControl.volumeUp(); event.accepted = false; }
92− Keys.onVolumeDownPressed: volumeControl.volumeDown()
92+ Keys.onVolumeDownPressed: { volumeControl.volumeDown(); event.accepted = false; }
93
93
94− Item {
94+ Keys.onPressed: {
95− id: underlayClipper
95+ if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
96− anchors.fill: parent
96+ dialogs.onPowerKeyPressed();
97− anchors.rightMargin: stages.overlayWidth
97+ event.accepted = true;
98− clip: stages.overlayMode && !stages.painting
98+ } else {
99−
99+ event.accepted = false;
100− InputFilterArea {
100+ }
101− anchors.fill: parent
102− blockInput: parent.clip
103 }
101 }
104
102
105− Item {
103+ Keys.onReleased: {
106− id: underlay
104+ if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
107− objectName: "underlay"
105+ dialogs.onPowerKeyReleased();
108− anchors.fill: parent
106+ event.accepted = true;
109− anchors.rightMargin: -parent.anchors.rightMargin
107+ } else {
108+ event.accepted = false;
109+ }
110+ }
111+ }
110
112
111− // Whether the underlay is fully covered by opaque UI elements.
113+ Item {
112− property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
114+ id: underlay
115+ objectName: "underlay"
116+ anchors.fill: parent
113
117
114− // Whether the user should see the topmost application surface (if there's one at all).
118+ // Whether the underlay is fully covered by opaque UI elements.
115− readonly property bool applicationSurfaceShouldBeSeen: stages.shown && !stages.painting && !stages.overlayMode
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+ }
116
130
117− // NB! Application surfaces are stacked behind the shell one. So they can only be seen by the user
131+ Dash {
118− // through the translucent parts of the shell surface.
132+ id: dash
119− visible: !fullyCovered && !applicationSurfaceShouldBeSeen
133+ objectName: "dash"
120
134
121− Rectangle {
135+ available: !LightDM.Greeter.active
122− anchors.fill: parent
136+ hides: [stages, launcher, panel.indicators]
123− color: "black"
137+ shown: disappearingAnimationProgress !== 1.0 && greeterWrapper.showProgress !== 1.0 &&
124− opacity: dash.disappearingAnimationProgress
138+ !(panel.indicators.fullyOpened && !sideStageEnabled)
125− }
139+ enabled: disappearingAnimationProgress === 0.0 && greeterWrapper.showProgress === 0.0 && edgeDemo.dashEnabled
126
140
127− Image {
141+ anchors {
128− anchors.fill: dash
142+ fill: parent
129− source: shell.width > shell.height ? "Dash/graphics/paper_landscape.png" : "Dash/graphics/paper_portrait.png"
143+ topMargin: panel.panelHeight
130− fillMode: Image.PreserveAspectCrop
131− horizontalAlignment: Image.AlignRight
132− verticalAlignment: Image.AlignTop
133 }
144 }
134
145
135− Dash {
146+ contentScale: 1.0 - 0.2 * disappearingAnimationProgress
136− id: dash
147+ opacity: 1.0 - disappearingAnimationProgress
137− objectName: "dash"
148+ property real disappearingAnimationProgress: stages.showProgress
138
149
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
150+ // FIXME: only necessary because stages.showProgress is not animated
160− Behavior on disappearingAnimationProgress { SmoothedAnimation { velocity: 5 }}
151+ Behavior on disappearingAnimationProgress { SmoothedAnimation { velocity: 5 }}
161− }
162 }
152 }
163 }
153 }
164
154
165 EdgeDragArea {
155 EdgeDragArea {
166− id: stagesDragHandle
156+ id: stagesDragArea
167 direction: Direction.Leftwards
157 direction: Direction.Leftwards
168
158
169 anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
159 anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
@@ -173,20 +163,20 @@ FocusScope {
173
163
174 onTouchXChanged: {
164 onTouchXChanged: {
175 if (status == DirectionalDragArea.Recognized) {
165 if (status == DirectionalDragArea.Recognized) {
176− if (ApplicationManager.count == 0) {
166+ if (ApplicationManager.empty) {
177− progress = Math.max(stages.width - stagesDragHandle.width + touchX, stages.width * .3)
167+ progress = Math.max(stages.width - stagesDragArea.width + touchX, stages.width * .3);
178 } else {
168 } else {
179− progress = stages.width - stagesDragHandle.width + touchX
169+ progress = stages.width - stagesDragArea.width + touchX;
180 }
170 }
181 }
171 }
182 }
172 }
183
173
184 onDraggingChanged: {
174 onDraggingChanged: {
185 if (!dragging) {
175 if (!dragging) {
186− if (ApplicationManager.count > 0 && progress < stages.width - units.gu(10)) {
176+ if (!ApplicationManager.empty && progress < stages.width - units.gu(10)) {
187− stages.show(true)
177+ stages.show();
188 }
178 }
189− stagesDragHandle.progress = stages.width;
179+ stagesDragArea.progress = Qt.binding(function () { return stages.width; });
190 }
180 }
191 }
181 }
192 }
182 }
@@ -197,98 +187,85 @@ FocusScope {
197 width: parent.width
187 width: parent.width
198 height: parent.height
188 height: parent.height
199
189
190+ visible: !fullyHidden && !ApplicationManager.empty
191+
200 x: {
192 x: {
201 if (shown) {
193 if (shown) {
202− if (overlayMode || locked) {
194+ if (locked || greeter.fakeActiveForApp !== "") {
203 return 0;
195 return 0;
204 }
196 }
205− return launcher.progress
197+ return launcher.progress;
206 } else {
198 } else {
207− return stagesDragHandle.progress
199+ return stagesDragArea.progress
208 }
200 }
209 }
201 }
210−
211 Behavior on x { SmoothedAnimation { velocity: 600; duration: UbuntuAnimation.FastDuration } }
202 Behavior on x { SmoothedAnimation { velocity: 600; duration: UbuntuAnimation.FastDuration } }
212
203
213 property bool shown: false
204 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+ }
214
217
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.
215− property real showProgress: overlayMode ? 0 : MathUtils.clamp(1 - x / shell.width, 0, 1)
221+ property real showProgress: shell.width ? MathUtils.clamp(1 - x / shell.width, 0, 1) : 0
216
222
217 property bool fullyShown: x == 0
223 property bool fullyShown: x == 0
218 property bool fullyHidden: x == width
224 property bool fullyHidden: x == width
219
225
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
224 property bool locked: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.locked : false
226 property bool locked: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.locked : false
225
227
228+ // It might technically not be fullyShown but visually it just looks so.
229+ property bool roughlyFullyShown: x >= 0 && x <= units.gu(1)
230+
226− function show(focusApp) {
231+ function show() {
227 shown = true;
232 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− }
234 }
233 }
235
234
236 function hide() {
235 function hide() {
237 shown = false;
236 shown = false;
238− if (ApplicationManager.focusedApplicationId) {
239− ApplicationManager.unfocusCurrentApplication();
240− }
241 }
237 }
242
238
243 Connections {
239 Connections {
244 target: ApplicationManager
240 target: ApplicationManager
245−
246 onFocusRequested: {
241 onFocusRequested: {
242+ if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
243+ lockscreen.show();
244+ }
245+ greeter.hide();
247− stages.show(true);
246+ stages.show();
248 }
247 }
249
248
250 onFocusedApplicationIdChanged: {
249 onFocusedApplicationIdChanged: {
251− if (ApplicationManager.focusedApplicationId.length > 0) {
250+ if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== ApplicationManager.focusedApplicationId) {
252− stages.show(false);
251+ lockscreen.show();
253− } else {
254− if (!stages.overlayMode) {
255− stages.hide();
256− }
257 }
252 }
253+ panel.indicators.hide();
258 }
254 }
259
255
260 onApplicationAdded: {
256 onApplicationAdded: {
261− stages.show(false);
257+ if (greeter.shown) {
262− }
258+ greeter.hide();
263−
264− onApplicationRemoved: {
265− if (ApplicationManager.focusedApplicationId.length == 0) {
266− stages.hide();
267 }
259 }
268− }
260+ if (!stages.shown) {
269− }
261+ stages.show();
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);
281 }
262 }
282 }
263 }
283
264
284− onLogoutRequested: {
265+ onEmptyChanged: {
285− // TODO: Display a dialog to ask the user to confirm.
266+ if (ApplicationManager.empty) {
286− DBusUnitySessionService.Logout();
267+ stages.hide();
287− }
268+ }
288−
289− onLogoutReady: {
290− closeAllApps();
291− Qt.quit();
292 }
269 }
293 }
270 }
294
271
@@ -296,22 +273,61 @@ FocusScope {
296 id: applicationsDisplayLoader
273 id: applicationsDisplayLoader
297 anchors.fill: parent
274 anchors.fill: parent
298
275
299− source: shell.sideStageEnabled ? "Stages/StageWithSideStage.qml" : "Stages/PhoneStage.qml"
276+ source: shell.sideStageEnabled ? "Stages/TabletStage.qml" : "Stages/PhoneStage.qml"
300
277
301 Binding {
278 Binding {
302 target: applicationsDisplayLoader.item
279 target: applicationsDisplayLoader.item
303− property: "moving"
280+ property: "objectName"
304− value: !stages.fullyShown
281+ value: "stage"
305 }
282 }
306 Binding {
283 Binding {
307 target: applicationsDisplayLoader.item
284 target: applicationsDisplayLoader.item
308− property: "shown"
285+ property: "dragAreaWidth"
309− value: stages.shown
286+ value: shell.edgeSize
310 }
287 }
311 Binding {
288 Binding {
312 target: applicationsDisplayLoader.item
289 target: applicationsDisplayLoader.item
313− property: "dragAreaWidth"
290+ property: "maximizedAppTopMargin"
314− value: shell.edgeSize
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();
315 }
331 }
316 }
332 }
317 }
333 }
@@ -328,7 +344,7 @@ FocusScope {
328 showAnimation: StandardAnimation { property: "opacity"; to: 1 }
344 showAnimation: StandardAnimation { property: "opacity"; to: 1 }
329 hideAnimation: StandardAnimation { property: "opacity"; to: 0 }
345 hideAnimation: StandardAnimation { property: "opacity"; to: 0 }
330 y: panel.panelHeight
346 y: panel.panelHeight
331− x: required ? 0 : - width
347+ visible: required
332 width: parent.width
348 width: parent.width
333 height: parent.height - panel.panelHeight
349 height: parent.height - panel.panelHeight
334 background: shell.background
350 background: shell.background
@@ -337,6 +353,13 @@ FocusScope {
337
353
338 onEntered: LightDM.Greeter.respond(passphrase);
354 onEntered: LightDM.Greeter.respond(passphrase);
339 onCancel: greeter.show()
355 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 = ""
340
363
341 Component.onCompleted: {
364 Component.onCompleted: {
342 if (LightDM.Users.count == 1) {
365 if (LightDM.Users.count == 1) {
@@ -348,6 +371,8 @@ FocusScope {
348 Connections {
371 Connections {
349 target: LightDM.Greeter
372 target: LightDM.Greeter
350
373
374+ onShowGreeter: greeter.show()
375+
351 onShowPrompt: {
376 onShowPrompt: {
352 if (LightDM.Users.count == 1) {
377 if (LightDM.Users.count == 1) {
353 // TODO: There's no better way for now to determine if its a PIN or a passphrase.
378 // TODO: There's no better way for now to determine if its a PIN or a passphrase.
@@ -367,12 +392,19 @@ FocusScope {
367 }
392 }
368 if (LightDM.Greeter.authenticated) {
393 if (LightDM.Greeter.authenticated) {
369 lockscreen.hide();
394 lockscreen.hide();
395+ greeter.login();
370 } else {
396 } else {
371 lockscreen.clear(true);
397 lockscreen.clear(true);
372 }
398 }
373 }
399 }
374 }
400 }
375
401
402+ Binding {
403+ target: LightDM.Greeter
404+ property: "active"
405+ value: greeter.shown || lockscreen.shown || greeter.fakeActiveForApp != ""
406+ }
407+
376 Rectangle {
408 Rectangle {
377 anchors.fill: parent
409 anchors.fill: parent
378 color: "black"
410 color: "black"
@@ -392,12 +424,18 @@ FocusScope {
392 StandardAnimation {}
424 StandardAnimation {}
393 }
425 }
394
426
427+ property bool fullyShown: showProgress === 1.0
395 readonly property real showProgress: MathUtils.clamp((1 - x/width) + greeter.showProgress - 1, 0, 1)
428 readonly property real showProgress: MathUtils.clamp((1 - x/width) + greeter.showProgress - 1, 0, 1)
429+ onShowProgressChanged: if (LightDM.Greeter.promptless && showProgress === 0) greeter.login()
396
430
397 Greeter {
431 Greeter {
398 id: greeter
432 id: greeter
399 objectName: "greeter"
433 objectName: "greeter"
400
434
435+ signal sessionStarted() // helpful for tests
436+
437+ property string fakeActiveForApp: ""
438+
401 available: true
439 available: true
402 hides: [launcher, panel.indicators]
440 hides: [launcher, panel.indicators]
403 shown: true
441 shown: true
@@ -409,14 +447,28 @@ FocusScope {
409
447
410 dragHandleWidth: shell.edgeSize
448 dragHandleWidth: shell.edgeSize
411
449
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+
412 onShownChanged: {
460 onShownChanged: {
413 if (shown) {
461 if (shown) {
414 lockscreen.reset();
462 lockscreen.reset();
463+ if (!LightDM.Greeter.promptless) {
464+ lockscreen.show();
465+ }
415 // If there is only one user, we start authenticating with that one here.
466 // If there is only one user, we start authenticating with that one here.
416 // If there are more users, the Greeter will handle that
467 // If there are more users, the Greeter will handle that
417 if (LightDM.Users.count == 1) {
468 if (LightDM.Users.count == 1) {
418 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
469 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
419 }
470 }
471+ greeter.fakeActiveForApp = "";
420 greeter.forceActiveFocus();
472 greeter.forceActiveFocus();
421 }
473 }
422 }
474 }
@@ -439,12 +491,6 @@ FocusScope {
439 }
491 }
440 }
492 }
441
493
442− InputFilterArea {
443− anchors.fill: parent
444− blockInput: ApplicationManager.focusedApplicationId.length === 0 || greeter.shown || lockscreen.shown || launcher.shown
445− || panel.indicators.shown
446− }
447−
448 Connections {
494 Connections {
449 id: powerConnection
495 id: powerConnection
450 target: Powerd
496 target: Powerd
@@ -466,58 +512,69 @@ FocusScope {
466 }
512 }
467
513
468 function showHome() {
514 function showHome() {
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+
469− var animate = !greeter.shown && !stages.shown
526+ var animate = !LightDM.Greeter.active && !stages.shown
470− greeter.hide()
471 dash.setCurrentScope("clickscope", animate, false)
527 dash.setCurrentScope("clickscope", animate, false)
472 stages.hide()
528 stages.hide()
473 }
529 }
474
530
475− function hideIndicatorMenu(delay) {
531+ function showDash() {
476− panel.hideIndicatorMenu(delay);
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+ }
477 }
547 }
478
548
479 Item {
549 Item {
480 id: overlay
550 id: overlay
551+ z: 10
481
552
482 anchors.fill: parent
553 anchors.fill: parent
483
554
484 Panel {
555 Panel {
485 id: panel
556 id: panel
557+ objectName: "panel"
486 anchors.fill: parent //because this draws indicator menus
558 anchors.fill: parent //because this draws indicator menus
487− indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
488 indicators {
559 indicators {
489 hides: [launcher]
560 hides: [launcher]
490− available: edgeDemo.panelEnabled
561+ available: edgeDemo.panelEnabled && greeter.fakeActiveForApp === ""
491 contentEnabled: edgeDemo.panelContentEnabled
562 contentEnabled: edgeDemo.panelContentEnabled
563+ width: parent.width > units.gu(60) ? units.gu(40) : parent.width
564+ panelHeight: units.gu(3)
492 }
565 }
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
497
566
498− InputFilterArea {
567+ property bool topmostApplicationIsFullscreen:
499− anchors {
568+ ApplicationManager.focusedApplicationId &&
500− top: parent.top
569+ ApplicationManager.findApplication(ApplicationManager.focusedApplicationId).fullscreen
501− left: parent.left
502− right: parent.right
503− }
504− height: (panel.fullscreenMode) ? shell.edgeSize : panel.panelHeight
505− blockInput: true
506− }
507− }
508
570
509− InputFilterArea {
571+ fullscreenMode: (stages.roughlyFullyShown && topmostApplicationIsFullscreen
510− blockInput: launcher.shown
572+ && !LightDM.Greeter.active) || greeter.fakeActiveForApp !== ""
511− anchors {
512− top: parent.top
513− bottom: parent.bottom
514− left: parent.left
515− }
516− width: launcher.width
517 }
573 }
518
574
519 Launcher {
575 Launcher {
520 id: launcher
576 id: launcher
577+ objectName: "launcher"
521
578
522 readonly property bool dashSwipe: progress > 0
579 readonly property bool dashSwipe: progress > 0
523
580
@@ -525,28 +582,15 @@ FocusScope {
525 anchors.bottom: parent.bottom
582 anchors.bottom: parent.bottom
526 width: parent.width
583 width: parent.width
527 dragAreaWidth: shell.edgeSize
584 dragAreaWidth: shell.edgeSize
528− available: edgeDemo.launcherEnabled
585+ available: edgeDemo.launcherEnabled && greeter.fakeActiveForApp === ""
529
586
530− onShowDashHome: {
587+ onShowDashHome: showHome()
531− if (edgeDemo.running)
532− return;
533−
534− showHome()
535− }
536− onDash: {
588+ onDash: showDash()
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− }
548 onDashSwipeChanged: if (dashSwipe && stages.shown) dash.setCurrentScope("clickscope", false, true)
589 onDashSwipeChanged: if (dashSwipe && stages.shown) dash.setCurrentScope("clickscope", false, true)
549 onLauncherApplicationSelected: {
590 onLauncherApplicationSelected: {
591+ if (greeter.fakeActiveForApp !== "") {
592+ lockscreen.show()
593+ }
550 if (!edgeDemo.running)
594 if (!edgeDemo.running)
551 shell.activateApplication(appId)
595 shell.activateApplication(appId)
552 }
596 }
@@ -568,11 +612,6 @@ FocusScope {
568 MouseArea {
612 MouseArea {
569 anchors.fill: parent
613 anchors.fill: parent
570 }
614 }
571−
572− InputFilterArea {
573− anchors.fill: parent
574− blockInput: modalNotificationBackground.visible
575− }
576 }
615 }
577
616
578 Notifications {
617 Notifications {
@@ -581,12 +620,10 @@ FocusScope {
581 model: NotificationBackend.Model
620 model: NotificationBackend.Model
582 margin: units.gu(1)
621 margin: units.gu(1)
583
622
584− anchors {
623+ y: panel.panelHeight
585− top: parent.top
624+ width: parent.width
586− right: parent.right
587− bottom: parent.bottom
588− topMargin: panel.panelHeight
625+ height: parent.height - panel.panelHeight
589− }
626+
590 states: [
627 states: [
591 State {
628 State {
592 name: "narrow"
629 name: "narrow"
@@ -600,62 +637,31 @@ FocusScope {
600 PropertyChanges { target: notifications; width: units.gu(38) }
637 PropertyChanges { target: notifications; width: units.gu(38) }
601 }
638 }
602 ]
639 ]
603−
604− InputFilterArea {
605− anchors { left: parent.left; right: parent.right }
606− height: parent.contentHeight
607− blockInput: height > 0
608− }
609 }
640 }
610 }
641 }
611
642
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−
635 Binding {
643 Binding {
636 target: i18n
644 target: i18n
637 property: "domain"
645 property: "domain"
638 value: "unity8"
646 value: "unity8"
639 }
647 }
640
648
641− OSKController {
649+ Dialogs {
642− anchors.topMargin: panel.panelHeight
650+ id: dialogs
643− anchors.fill: parent // as needs to know the geometry of the shell
651+ anchors.fill: parent
644− }
652+ z: overlay.z + 10
645−
653+ onPowerOffClicked: {
646− //FIXME: This should be handled in the input stack, keyboard shouldnt propagate
654+ shutdownFadeOutRectangle.enabled = true;
647− MouseArea {
655+ shutdownFadeOutRectangle.visible = true;
648− anchors.bottom: parent.bottom
656+ shutdownFadeOut.start();
649− anchors.left: parent.left
657+ }
650− anchors.right: parent.right
651− height: ApplicationManager.keyboardVisible ? ApplicationManager.keyboardHeight : 0
652−
653− enabled: ApplicationManager.keyboardVisible
654 }
658 }
655
659
656 Label {
660 Label {
661+ id: alphaDisclaimerLabel
657 anchors.centerIn: parent
662 anchors.centerIn: parent
658 visible: ApplicationManager.fake ? ApplicationManager.fake : false
663 visible: ApplicationManager.fake ? ApplicationManager.fake : false
664+ z: dialogs.z + 10
659 text: "EARLY ALPHA\nNOT READY FOR USE"
665 text: "EARLY ALPHA\nNOT READY FOR USE"
660 color: "lightgrey"
666 color: "lightgrey"
661 opacity: 0.2
667 opacity: 0.2
@@ -669,6 +675,7 @@ FocusScope {
669
675
670 EdgeDemo {
676 EdgeDemo {
671 id: edgeDemo
677 id: edgeDemo
678+ z: alphaDisclaimerLabel.z + 10
672 greeter: greeter
679 greeter: greeter
673 launcher: launcher
680 launcher: launcher
674 dash: dash
681 dash: dash
@@ -680,4 +687,25 @@ FocusScope {
680 target: SessionBroadcast
687 target: SessionBroadcast
681 onShowHome: showHome()
688 onShowHome: showHome()
682 }
689 }
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+
683}
711}
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 {
25 id: root
25 id: root
26
26
27 // Controls to be set from outside
27 // Controls to be set from outside
28− property bool shown: false
29− property bool moving: false
30 property int dragAreaWidth
28 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
31
32
32 // State information propagated to the outside
33 // 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
34+ readonly property bool locked: spreadView.phase == 2
36−
37− // Not used for PhoneStage, only useful for SideStage and similar
38− property bool overlayMode: false
39− property int overlayWidth: 0
40
35
41 function select(appId) {
36 function select(appId) {
42− spreadView.snapTo(priv.indexOf(appId))
37+ spreadView.snapTo(priv.indexOf(appId));
43 }
38 }
44
39
45− onMovingChanged: {
40+ onWidthChanged: {
46− if (moving) {
41+ spreadView.selectedIndex = -1;
47− if (ApplicationManager.focusedApplicationId) {
42+ spreadView.phase = 0;
48− priv.requestNewScreenshot();
43+ spreadView.contentX = -spreadView.shift;
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− }
57 }
44 }
58
45
59 Connections {
46 Connections {
60 target: ApplicationManager
47 target: ApplicationManager
61
48
62 onFocusRequested: {
49 onFocusRequested: {
63− if (spreadView.visible) {
50+ if (spreadView.phase > 0) {
64 spreadView.snapTo(priv.indexOf(appId));
51 spreadView.snapTo(priv.indexOf(appId));
65 } else {
52 } else {
66 priv.switchToApp(appId);
53 priv.switchToApp(appId);
67 }
54 }
68 }
55 }
69
56
70− onFocusedApplicationIdChanged: {
57+ onApplicationAdded: {
58+ if (spreadView.phase == 2) {
71− if (ApplicationManager.focusedApplicationId.length > 0) {
59+ spreadView.snapTo(ApplicationManager.count - 1);
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− }
79 } else {
60 } else {
80− spreadView.selectedIndex = -1;
81 spreadView.phase = 0;
61 spreadView.phase = 0;
82 spreadView.contentX = -spreadView.shift;
62 spreadView.contentX = -spreadView.shift;
83− }
63+ priv.switchToApp(appId);
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);
100 }
64 }
101 }
65 }
102
66
103 onApplicationRemoved: {
67 onApplicationRemoved: {
104− if (ApplicationManager.count == 0) {
68+ // Unless we're closing the app ourselves in the spread,
105− mainScreenshotImage.source = ""
69+ // lets make sure the spread doesn't mess up by the changing app list.
106− mainScreenshotImage.visible = false;
70+ if (spreadView.closingIndex == -1) {
107− } else {
71+ spreadView.phase = 0;
108− mainScreenshotImage.source = ApplicationManager.get(0).screenshot;
72+ spreadView.contentX = -spreadView.shift;
109 }
73 }
110 }
74 }
111 }
75 }
@@ -115,36 +79,11 @@ Item {
115
79
116 property string focusedAppId: ApplicationManager.focusedApplicationId
80 property string focusedAppId: ApplicationManager.focusedApplicationId
117 property var focusedApplication: ApplicationManager.findApplication(focusedAppId)
81 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− }
142
82
143 function switchToApp(appId) {
83 function switchToApp(appId) {
144 if (priv.focusedAppId) {
84 if (priv.focusedAppId) {
145− priv.newFocusedAppId = appId;
85+ spreadView.focusChanging = true;
146− root.fullscreen = ApplicationManager.findApplication(appId).fullscreen;
86+ ApplicationManager.focusApplication(appId);
147− applicationSwitchingAnimation.start();
148 } else {
87 } else {
149 ApplicationManager.focusApplication(appId);
88 ApplicationManager.focusApplication(appId);
150 }
89 }
@@ -161,158 +100,6 @@ Item {
161
100
162 }
101 }
163
102
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−
316 Rectangle {
103 Rectangle {
317 id: coverFlipBackground
104 id: coverFlipBackground
318 anchors.fill: parent
105 anchors.fill: parent
@@ -320,16 +107,12 @@ Item {
320 visible: spreadView.visible
107 visible: spreadView.visible
321 }
108 }
322
109
323− InputFilterArea {
324− anchors.fill: root
325− blockInput: spreadView.visible
326− }
327
110
328 Flickable {
111 Flickable {
329 id: spreadView
112 id: spreadView
330 objectName: "spreadView"
113 objectName: "spreadView"
331 anchors.fill: parent
114 anchors.fill: parent
332− visible: spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1 || snapAnimation.running
115+ interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1) && draggedIndex == -1
333 contentWidth: spreadRow.width - shift
116 contentWidth: spreadRow.width - shift
334 contentX: -shift
117 contentX: -shift
335
118
@@ -338,8 +121,8 @@ Item {
338 // that, the beginning of the gesture starts with a negative value for contentX
121 // that, the beginning of the gesture starts with a negative value for contentX
339 // so the flickable wants to pull it into the view already. "shift" tunes the
122 // so the flickable wants to pull it into the view already. "shift" tunes the
340 // distance where to "lock" the content.
123 // distance where to "lock" the content.
341− property real shift: width / 2
124+ readonly property real shift: width / 2
342− property real shiftedContentX: contentX + shift
125+ readonly property real shiftedContentX: contentX + shift
343
126
344 property int tileDistance: width / 4
127 property int tileDistance: width / 4
345
128
@@ -363,6 +146,10 @@ Item {
363 property int phase: 0
146 property int phase: 0
364
147
365 property int selectedIndex: -1
148 property int selectedIndex: -1
149+ property int draggedIndex: -1
150+ property int closingIndex: -1
151+
152+ property bool focusChanging: false
366
153
367 onShiftedContentXChanged: {
154 onShiftedContentXChanged: {
368 switch (phase) {
155 switch (phase) {
@@ -386,9 +173,9 @@ Item {
386 snapAnimation.targetContentX = -shift;
173 snapAnimation.targetContentX = -shift;
387 snapAnimation.start();
174 snapAnimation.start();
388 } else if (shiftedContentX < positionMarker2 * width) {
175 } else if (shiftedContentX < positionMarker2 * width) {
389− snapTo(1)
176+ snapTo(1);
390 } else if (shiftedContentX < positionMarker3 * width) {
177 } else if (shiftedContentX < positionMarker3 * width) {
391− snapTo(1)
178+ snapTo(1);
392 } else if (phase < 2){
179 } else if (phase < 2){
393 // Add 1 pixel to make sure we definitely hit positionMarker4 even with rounding errors of the animation.
180 // Add 1 pixel to make sure we definitely hit positionMarker4 even with rounding errors of the animation.
394 snapAnimation.targetContentX = width * positionMarker4 + 1 - shift;
181 snapAnimation.targetContentX = width * positionMarker4 + 1 - shift;
@@ -396,9 +183,18 @@ Item {
396 }
183 }
397 }
184 }
398 function snapTo(index) {
185 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+ }
399 spreadView.selectedIndex = index;
190 spreadView.selectedIndex = index;
400− root.fullscreen = ApplicationManager.get(index).fullscreen;
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 {
401− snapAnimation.targetContentX = -shift;
196+ snapAnimation.targetContentX = -shift + index * spreadView.tileDistance;
197+ }
402 snapAnimation.start();
198 snapAnimation.start();
403 }
199 }
404
200
@@ -417,7 +213,8 @@ Item {
417 script: {
213 script: {
418 if (spreadView.selectedIndex >= 0) {
214 if (spreadView.selectedIndex >= 0) {
419 ApplicationManager.focusApplication(ApplicationManager.get(spreadView.selectedIndex).appId);
215 ApplicationManager.focusApplication(ApplicationManager.get(spreadView.selectedIndex).appId);
216+
420− spreadView.selectedIndex = -1
217+ spreadView.selectedIndex = -1;
421 spreadView.phase = 0;
218 spreadView.phase = 0;
422 spreadView.contentX = -spreadView.shift;
219 spreadView.contentX = -spreadView.shift;
423 }
220 }
@@ -431,6 +228,15 @@ Item {
431 // tileDistance * app count (with a minimum of 3 apps, in order to also allow moving 1 and 2 apps a bit)
228 // tileDistance * app count (with a minimum of 3 apps, in order to also allow moving 1 and 2 apps a bit)
432 // + some constant value (still scales with the screen width) which looks good and somewhat fills the screen
229 // + some constant value (still scales with the screen width) which looks good and somewhat fills the screen
433 width: Math.max(3, ApplicationManager.count) * spreadView.tileDistance + (spreadView.width - spreadView.tileDistance) * 1.5
230 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+ }
434
240
435 x: spreadView.contentX
241 x: spreadView.contentX
436
242
@@ -450,18 +256,55 @@ Item {
450 height: spreadView.height
256 height: spreadView.height
451 selected: spreadView.selectedIndex == index
257 selected: spreadView.selectedIndex == index
452 otherSelected: spreadView.selectedIndex >= 0 && !selected
258 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
453
264
454− z: index
265+ z: behavioredIndex
455 x: index == 0 ? 0 : spreadView.width + (index - 1) * spreadView.tileDistance
266 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+ }
456
290
457 // Each tile has a different progress value running from 0 to 1.
291 // 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
459 progress: {
295 progress: {
460− var tileProgress = (spreadView.shiftedContentX - index * spreadView.tileDistance) / spreadView.width;
296+ var tileProgress = (spreadView.shiftedContentX - behavioredIndex * spreadView.tileDistance) / spreadView.width;
461 // Tile 1 needs to move directly from the beginning...
297 // Tile 1 needs to move directly from the beginning...
462− if (index == 1 && spreadView.phase < 2) {
298+ if (behavioredIndex == 1 && spreadView.phase < 2) {
463 tileProgress += spreadView.tileDistance / spreadView.width;
299 tileProgress += spreadView.tileDistance / spreadView.width;
464 }
300 }
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));
465 return tileProgress;
308 return tileProgress;
466 }
309 }
467
310
@@ -481,7 +324,7 @@ Item {
481
324
482 EasingCurve {
325 EasingCurve {
483 id: snappingCurve
326 id: snappingCurve
484− type: EasingCurve.OutQuad
327+ type: EasingCurve.Linear
485 period: 0.05
328 period: 0.05
486 progress: appDelegate.progress - spreadView.positionMarker1
329 progress: appDelegate.progress - spreadView.positionMarker1
487 }
330 }
@@ -495,8 +338,85 @@ Item {
495 }
338 }
496 }
339 }
497 }
340 }
341+
342+ onClosed: {
343+ spreadView.draggedIndex = -1;
344+ spreadView.closingIndex = index;
345+ ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
346+ }
498 }
347 }
499 }
348 }
500 }
349 }
501 }
350 }
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+ }
502}
422}
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 @@
17*/
17*/
18
18
19import QtQuick 2.0
19import QtQuick 2.0
20+import Unity.Application 0.1
21+import Ubuntu.Components 1.1
22+import "../Components"
20
23
21Item {
24Item {
22 id: root
25 id: root
23
26
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+
24 signal clicked()
35 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+ }
25
65
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+ }
27
111
28− QtObject {
112+ transform: Translate {
29− id: priv
113+ y: dragArea.distance
30− property real heightDifference: root.height - appImage.implicitHeight
114+ }
31 }
115 }
32
116
33− Image {
117+
34− id: dropShadow
118+ StateGroup {
35− anchors.fill: appImage
119+ id: appSurfaceState
36− anchors.margins: -units.gu(2)
120+ states: [
37− source: "graphics/dropshadow.png"
121+ State {
38− opacity: .4
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"
39 }
140 }
40− Image {
141+
41− id: appImage
142+ Loader {
143+ id: splashLoader
42− anchors {
144+ anchors.fill: surfaceContainer
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
50 }
145 }
51− MouseArea {
146+
147+ DraggingArea {
148+ id: dragArea
52− anchors.fill: appImage
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) {
53− onClicked: root.clicked()
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+ }
54 }
218 }
55}
219}
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.