on xenial help sign in
Merging with lp:~3v1n0/unity8/fake-indicators-model
commit7b5207efb9545f313172301cca33f2d2e858be2b authorMarco Trevisan (Treviño) <mail@3v1n0.net> dateThu 8 Sep 2016, 18:48 (10 years ago) parent8e760e55e74927
741 files changed+40165−16442
.crossbuilder/post_deploy+1 CMakeLists.txt+3−1 CODING+20−59 build.sh+6−37 data/51-unity8-greeter.conf+2 data/CMakeLists.txt+11 data/unity8-dash.png data/unity8-greeter-init.conf+12 data/unity8-greeter-wrapper+98 data/unity8-greeter.desktop.in+7 data/unity8-greeter.pkla+44 data/unity8.conf+25−2 debian/changelog+323 debian/control+39−21 debian/rules+5−1 debian/unity8-greeter.install+5 debian/unity8-private.install+1−1 debian/unity8.install+1 debian/usr.bin.unity8-dash+21 plugins/AccountsService/AccountsService.cpp+41−3 plugins/AccountsService/AccountsService.h+15−4 plugins/AccountsService/AccountsService.qmltypes−41 plugins/AccountsService/com.canonical.unity.AccountsService.xml+4 plugins/CMakeLists.txt+1−1 plugins/Cursor/CMakeLists.txt+4 plugins/Cursor/Cursor.qml+29−11 plugins/Cursor/CursorImageInfo.cpp+23−13 plugins/Cursor/CursorImageInfo.h+10−4 plugins/Cursor/CursorImageProvider.cpp+34−22 plugins/Cursor/CursorImageProvider.h+9−6 plugins/Cursor/MousePointer.cpp+13−8 plugins/Cursor/MousePointer.h+4−1 plugins/Dash/CMakeLists.txt+4 plugins/Dash/CardCreator.js+146−115 plugins/Dash/CardCreatorCache.qml+3−3 plugins/Dash/Dash.qmltypes−100 plugins/Dash/DashAudioPlayer.qml+45−21 plugins/Dash/abstractdashview.cpp+13 plugins/Dash/abstractdashview.h+3−4 plugins/Dash/graphics/music_progress_bg.png plugins/Dash/horizontaljournal.cpp+1−4 plugins/Dash/listviewwithpageheader.cpp+14−8 plugins/Dash/organicgrid.cpp+3−4 plugins/Dash/verticaljournal.cpp+12−5 plugins/Dash/verticaljournal.h+3 plugins/GlobalShortcut/GlobalShortcut.qmltypes−31 plugins/Greeter/Unity/Launcher/CMakeLists.txt+1−1 plugins/Greeter/Unity/Launcher/Launcher.qmltypes−182 plugins/Greeter/Unity/Launcher/launcheritem.cpp+14 plugins/Greeter/Unity/Launcher/launcheritem.h+3−1 plugins/Greeter/Unity/Launcher/launchermodelas.cpp+2−7 plugins/Greeter/Unity/Launcher/launchermodelas.h−1 plugins/IntegratedLightDM/CMakeLists.txt−40 plugins/LightDM/CMakeLists.txt+26 plugins/IntegratedLightDM/DBusGreeter.cpp → plugins/LightDM/DBusGreeter.cpp+5−4 plugins/IntegratedLightDM/DBusGreeter.h → plugins/LightDM/DBusGreeter.h plugins/IntegratedLightDM/DBusGreeterList.cpp → plugins/LightDM/DBusGreeterList.cpp plugins/IntegratedLightDM/DBusGreeterList.h → plugins/LightDM/DBusGreeterList.h plugins/LightDM/FullLightDM/CMakeLists.txt+28 plugins/LightDM/FullLightDM/qmldir+3 plugins/IntegratedLightDM/Greeter.cpp → plugins/LightDM/Greeter.cpp+13−2 plugins/IntegratedLightDM/Greeter.h → plugins/LightDM/Greeter.h+5−2 plugins/IntegratedLightDM/GreeterPrivate.h → plugins/LightDM/GreeterPrivate.h plugins/IntegratedLightDM/IntegratedLightDM.qmltypes → plugins/LightDM/IntegratedLightDM.qmltypes plugins/LightDM/IntegratedLightDM/CMakeLists.txt+33 plugins/LightDM/IntegratedLightDM/QLightDM/Greeter+17 plugins/LightDM/IntegratedLightDM/QLightDM/SessionsModel+17 plugins/LightDM/IntegratedLightDM/QLightDM/UsersModel+17 plugins/IntegratedLightDM/liblightdm/CMakeLists.txt → plugins/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txt+4−2 plugins/IntegratedLightDM/liblightdm/Greeter.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp plugins/IntegratedLightDM/liblightdm/Greeter.h → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.h plugins/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp+1−2 plugins/IntegratedLightDM/liblightdm/GreeterPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp+88 plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h+72 plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp+36 plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h+54 plugins/IntegratedLightDM/liblightdm/UsersModel.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpp+4−3 plugins/IntegratedLightDM/liblightdm/UsersModel.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.h+2−1 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+5−3 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h+2−1 plugins/LightDM/IntegratedLightDM/qmldir+3 plugins/LightDM/SessionsModel.cpp+122 plugins/LightDM/SessionsModel.h+68 plugins/IntegratedLightDM/UsersModel.cpp → plugins/LightDM/UsersModel.cpp plugins/IntegratedLightDM/UsersModel.h → plugins/LightDM/UsersModel.h plugins/IntegratedLightDM/plugin.cpp → plugins/LightDM/plugin.cpp+26−4 plugins/IntegratedLightDM/plugin.h → plugins/LightDM/plugin.h+5−5 plugins/IntegratedLightDM/qmldir → plugins/LightDM/qmldir plugins/Lights/CMakeLists.txt+1 plugins/Lights/Lights.qmltypes−45 plugins/Lights/android-hardware.h−4 plugins/Powerd/Powerd.qmltypes−39 plugins/SessionBroadcast/SessionBroadcast.qmltypes−19 plugins/UInput/UInput.qmltypes−44 plugins/Ubuntu/DownloadDaemonListener/CMakeLists.txt−1 plugins/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypes−60 plugins/Ubuntu/Gestures/AxisVelocityCalculator.cpp+1−1 plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+4−4 plugins/Ubuntu/Gestures/CMakeLists.txt+6−1 plugins/Ubuntu/Gestures/Gestures.qmltypes−77 plugins/Ubuntu/Gestures/TouchDispatcher.cpp+1−5 plugins/Ubuntu/Gestures/TouchGate.cpp+6−4 plugins/Ubuntu/Gestures/TouchGate.h+3−2 plugins/Ubuntu/Gestures/TouchGestureArea.cpp+16−16 plugins/Ubuntu/Gestures/TouchGestureArea.h+14−13 plugins/Ubuntu/Payments/Payments.qmltypes−43 plugins/Ubuntu/SystemImage/CMakeLists.txt+5 plugins/Ubuntu/SystemImage/SystemImage.cpp+127−5 plugins/Ubuntu/SystemImage/SystemImage.h+52−2 plugins/Ubuntu/SystemImage/SystemImage.qmltypes−19 plugins/Ubuntu/SystemImage/plugin.cpp+3−9 plugins/Ubuntu/SystemImage/plugin.h+1−1 plugins/Unity/Connectivity/Connectivity.qmltypes−19 plugins/Unity/DashCommunicator/DashCommunicator.qmltypes−47 plugins/Unity/Indicators/CMakeLists.txt+4 plugins/Unity/Indicators/Indicators.qmltypes−264 plugins/Unity/Indicators/actionrootstate.cpp+1−1 plugins/Unity/Indicators/indicatorsmanager.cpp+4−6 plugins/Unity/InputInfo/InputInfo.qmltypes−71 plugins/Unity/InputInfo/linux/qinputdeviceinfo_linux.cpp+7−2 plugins/Unity/InputInfo/linux/qinputdeviceinfo_linux_p.h−2 plugins/Unity/Launcher/CMakeLists.txt+3−1 plugins/Unity/Launcher/Launcher.qmltypes−182 plugins/Unity/Launcher/launcheritem.cpp+14−9 plugins/Unity/Launcher/launcheritem.h+3 plugins/Unity/Launcher/launchermodel.cpp+58−26 plugins/Unity/Launcher/launchermodel.h+1−1 plugins/Unity/Platform/Platform.qmltypes−20 plugins/Unity/Session/CMakeLists.txt+2 plugins/Unity/Session/Session.qmltypes−85 plugins/Unity/Session/dbusunitysessionservice.cpp+50−18 plugins/Unity/Session/dbusunitysessionservice.h+7 plugins/Utils/CMakeLists.txt+5 plugins/Utils/Utils.qmltypes−175 plugins/Utils/deviceconfigparser.cpp+1−1 plugins/Utils/globalfunctions.cpp+1−4 plugins/Utils/timezoneFormatter.cpp+1−1 plugins/Utils/windowstatestorage.cpp+5−3 plugins/Utils/windowstatestorage.h+1−1 plugins/WindowManager/CMakeLists.txt+1 plugins/Wizard/CMakeLists.txt+6−3 plugins/Wizard/PageList.cpp+16−1 plugins/Wizard/System.cpp+10−1 plugins/Wizard/System.h+5−1 plugins/Wizard/Wizard.qmltypes−33 plugins/Wizard/keyboardLayoutsModel.cpp+163 plugins/Wizard/keyboardLayoutsModel.h+66 plugins/Wizard/plugin.cpp+2 plugins/Wizard/qmldir−1 plugins/Wizard/timezonemodel.cpp+5−5 po/aa.po+296−93 po/am.po+334−101 po/ar.po+300−94 po/ast.po+330−97 po/az.po+296−93 po/be.po+300−94 po/bg.po+296−93 po/bn.po+300−94 po/br.po+312−100 po/bs.po+300−94 po/ca.po+400−145 po/ca@valencia.po+296−93 po/ce.po+296−93 po/ckb.po+296−93 po/co.po+341−100 po/cs.po+300−94 po/cy.po+300−94 po/da.po+300−94 po/de.po+338−101 po/el.po+300−94 po/en_AU.po+330−97 po/en_GB.po+331−98 po/eo.po+296−93 po/es.po+336−99 po/eu.po+300−94 po/fa.po+335−101 po/fi.po+334−99 po/fo.po+378−171 po/fr.po+342−104 po/ga.po+300−94 po/gd.po+340−100 po/gl.po+334−97 po/gv.po+296−93 po/he.po+300−94 po/hi.po+296−93 po/hr.po+331−98 po/hu.po+335−99 po/hy.po+296−93 po/ia.po+335−98 po/id.po+296−93 po/is.po+296−93 po/it.po+331−98 po/ja.po+296−93 po/km.po+296−93 po/kn.po+296−93 po/ko.po+300−94 po/ku.po+296−93 po/ky.po+296−93 po/lo.po+296−93 po/lt.po+296−93 po/lv.po+300−94 po/ml.po+296−93 po/mr.po+296−93 po/ms.po+336−98 po/my.po+296−93 po/nb.po+333−100 po/ne.po+296−93 po/nl.po+326−96 po/nn.po+296−93 po/oc.po+309−94 po/or.po+296−93 po/pa.po+300−94 po/pl.po+339−102 po/pt.po+336−99 po/pt_BR.po+300−94 po/ro.po+300−94 po/ru.po+323−102 po/shn.po+296−93 po/si.po+296−93 po/sk.po+336−101 po/sl.po+330−97 po/sq.po+300−94 po/sr.po+335−99 po/sv.po+336−102 po/sw.po+300−94 po/ta.po+296−93 po/te.po+296−93 po/th.po+296−93 po/tr.po+300−94 po/ug.po+319−113 po/uk.po+331−98 po/unity8.pot+314−109 po/ur.po+296−93 po/uz.po+296−93 po/vi.po+296−93 po/wo.po+300−94 po/xh.po+296−93 po/zh_CN.po+339−106 po/zh_HK.po+296−93 po/zh_TW.po+312−106 qml/Components/DelayedLockscreen.qml+1 qml/Components/Dialogs.qml+13−8 qml/Components/FadingLabel.qml+42 qml/Components/InputMethod.qml+8−44 qml/Components/KeyboardShortcutsOverlay.qml+334 qml/Components/KeymapSwitcher.qml+27−1 qml/Components/LazyImage.qml+3−1 qml/Components/ListItems/graphics/ListItemDividerHorizontal@18.png qml/Components/Lockscreen.qml+8 qml/Components/MediaServices/MediaServices.qml+386 qml/Components/MediaServices/MediaServicesControls.qml+192 qml/Components/MediaServices/MediaServicesHeader.qml+71 qml/Components/MediaServices/VideoPlayer.qml+155 qml/Components/MediaServices/VideoPlayerControls.qml+158 qml/Components/NotificationAudio.qml+20−3 qml/Components/PanelState/PanelState.qml+1 qml/Components/PassphraseLockscreen.qml+4 qml/Components/PhysicalKeysMapper.qml+2−22 qml/Components/PinLockscreen.qml+4 qml/Dash/Previews/PreviewSharing.qml → qml/Components/SharingPicker.qml+2−14 qml/Components/WindowControlButtons.qml+23−27 qml/Components/graphics/close@20.png qml/Components/graphics/icon_star_empty@20.png qml/Components/graphics/icon_star_full@20.png qml/Components/graphics/icon_star_half@20.png qml/Components/graphics/icon_star_off@20.png qml/Components/graphics/icon_star_on@20.png qml/Components/graphics/non-selected@18.png qml/Components/graphics/window-close.svg+164−14 qml/Components/graphics/window-maximize.svg+164−12 qml/Components/graphics/window-minimize.svg+164−13 qml/Components/graphics/window-window.svg+41 qml/Dash/CardCarousel.qml+1 qml/Dash/CardTool.qml+4−3 qml/Dash/DashApplication.qml+16−5 qml/Dash/DashNavigationList.qml+48−45 qml/Dash/DashPageHeader.qml+49−22 qml/Dash/Filters/FilterExpandableWidget.qml+1 qml/Dash/Filters/FilterOptionSelector.qml+2 qml/Dash/GenericScopeView.qml+12−10 qml/Dash/Previews/Preview.qml+17 qml/Dash/Previews/PreviewImageGallery.qml+3 qml/Dash/Previews/PreviewInlineVideo.qml+65 qml/Dash/Previews/PreviewMediaToolbar.qml+25−5 qml/Dash/Previews/PreviewRatingEdit.qml+4−1 qml/Dash/Previews/PreviewWidget.qml+3 qml/Dash/Previews/PreviewWidgetFactory.qml+11−1 qml/Dash/Previews/PreviewZoomableImage.qml+1 qml/Dash/ScopesList.qml+1 qml/Dash/graphics/dash_divider_top_darkgrad@27.png qml/Dash/graphics/dash_divider_top_lightgrad@27.png qml/Dash/graphics/header_handlearrow2@27.png qml/Dash/graphics/header_handlearrow@27.png qml/Dash/graphics/icon_clear@20.png qml/Dash/graphics/icon_search_active@20.png qml/Dash/graphics/icon_search_inactive@20.png qml/Dash/graphics/navigation_shadow@18.png qml/Dash/graphics/navigation_shadow_light@18.png qml/Dash/graphics/overview_hint@27.png qml/Dash/graphics/pagination_dot_off@30.png qml/Dash/graphics/pagination_dot_on@30.png qml/Dash/graphics/paper.png qml/Dash/graphics/pixel.png qml/Dash/graphics/play_button@18.png qml/Dash/graphics/play_button_active@18.png qml/Dash/graphics/play_button_active_big@20.png qml/Dash/graphics/play_button_big@20.png qml/Dash/graphics/tabbarchevron@27.png qml/Dash/graphics/tablet/icon_close_preview@20.png qml/Dash/graphics/tooltip_arrow@27.png qml/Greeter/CoverPage.qml+23−1 qml/Greeter/FullLightDMImpl.qml+28 qml/Greeter/Greeter.qml+192−70 qml/Greeter/GreeterPrompt.qml+197 qml/Greeter/IntegratedLightDMImpl.qml+1−1 qml/Greeter/LightDM.qml → qml/Greeter/LightDMService.qml+14−3 qml/Greeter/LoginList.qml+77−81 qml/Greeter/NarrowView.qml+20−3 qml/Greeter/WideView.qml+11−4 qml/Greeter/graphics/dot_empty.png qml/Greeter/graphics/dot_filled.png qml/Greeter/graphics/dot_pointer.png qml/Greeter/graphics/icon_arrow.png qml/Greeter/graphics/infographic_circle_back.png qml/Greeter/qmldir+1 qml/Launcher/Launcher.qml+2 qml/Launcher/LauncherDelegate.qml+4−8 qml/Launcher/LauncherPanel.qml+6−2 qml/Launcher/graphics/divider-line.png qml/Launcher/graphics/focused_app_arrow@30.png qml/Launcher/graphics/home@18.png qml/Launcher/graphics/quicklist_tooltip@30.png qml/Notifications/Notification.qml+29−29 qml/Notifications/NotificationMenuItemFactory.qml−3 qml/Notifications/Notifications.qml+14−24 qml/OrientedShell.qml+10−3 qml/Panel/IndicatorItemRow.qml+13−2 qml/Panel/Indicators/MenuItemFactory.qml+65 qml/Panel/IndicatorsMenu.qml+3−1 qml/Panel/Panel.qml+5−2 qml/Panel/graphics/rectangular_dropshadow@30.png qml/Rotation/HalfLoopRotationAnimation.qml+1−1 qml/Rotation/ImmediateRotationAction.qml+1−1 qml/Rotation/NinetyRotationAnimation.qml+1−1 qml/Rotation/UpdateShellTransformations.qml+4−4 qml/Shell.qml+78−21 qml/Stages/AbstractStage.qml+10 qml/Stages/ApplicationWindow.qml+32−9 qml/Stages/DecoratedWindow.qml+41−13 qml/Stages/DesktopSpread.qml+2 qml/Stages/DesktopStage.qml+90−23 qml/Stages/OrientationChangeAnimation.qml+30−6 qml/Stages/PhoneStage.qml+9−3 qml/Stages/ShimStage.qml → qml/Stages/ResizeGrip.qml+22−19 qml/Stages/SpreadDelegate.qml+79−92 qml/Stages/TabletSideStageTouchGesture.qml+3 qml/Stages/TabletStage.qml+27−14 qml/Stages/WindowControlsOverlay.qml+219 qml/Stages/WindowDecoration.qml+28−6 qml/Stages/WindowResizeArea.qml+15−15 qml/Stages/graphics/PageHeaderBaseDividerBottom@18.png qml/Stages/graphics/PageHeaderBaseDividerLight@18.png qml/Stages/graphics/arrows-centre.png qml/Stages/graphics/arrows.png qml/Stages/graphics/dropshadow2gu@30.png qml/Stages/graphics/sidestage_handle@20.png qml/Tutorial/InactivityTimer.qml+26−10 qml/Tutorial/Tutorial.qml+7−6 qml/Tutorial/TutorialBottom.qml−124 qml/Tutorial/TutorialContent.qml+51−134 qml/Tutorial/TutorialLeft.qml+2−2 qml/Tutorial/TutorialLeftLong.qml+3−1 qml/Tutorial/TutorialPage.qml+2−2 qml/Tutorial/TutorialRight.qml+2−2 qml/Tutorial/TutorialTop.qml+2−3 qml/Tutorial/graphics/background1.png qml/Tutorial/graphics/background2.png qml/Wizard/Page.qml+1−1 qml/Wizard/Pages/10-welcome.qml+19−5 qml/Wizard/Pages/20-keyboard.qml+160 qml/Wizard/Pages/30-wifi.qml+10−5 qml/Wizard/Pages/77-system-update.qml+156 qml/Wizard/Pages/data/Desktop_header_bkg.png qml/Wizard/Pages/data/Desktop_splash_screen_bkg.png qml/Wizard/Pages/data/Phone_header_bkg.png qml/Wizard/Pages/data/Phone_splash_screen_bkg.png qml/Wizard/Pages/data/Tick@30.png qml/Wizard/Pages/data/timezonemap/map.png qml/Wizard/Pages/data/timezonemap/pin.png qml/Wizard/Pages/data/timezonemap/timezone_-1.png qml/Wizard/Pages/data/timezonemap/timezone_-10.png qml/Wizard/Pages/data/timezonemap/timezone_-11.png qml/Wizard/Pages/data/timezonemap/timezone_-2.png qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png qml/Wizard/Pages/data/timezonemap/timezone_-3.png qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png qml/Wizard/Pages/data/timezonemap/timezone_-4.png qml/Wizard/Pages/data/timezonemap/timezone_-5.png qml/Wizard/Pages/data/timezonemap/timezone_-6.png qml/Wizard/Pages/data/timezonemap/timezone_-7.png qml/Wizard/Pages/data/timezonemap/timezone_-8.png qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png qml/Wizard/Pages/data/timezonemap/timezone_-9.png qml/Wizard/Pages/data/timezonemap/timezone_0.png qml/Wizard/Pages/data/timezonemap/timezone_1.png qml/Wizard/Pages/data/timezonemap/timezone_10.5.png qml/Wizard/Pages/data/timezonemap/timezone_10.png qml/Wizard/Pages/data/timezonemap/timezone_11.png qml/Wizard/Pages/data/timezonemap/timezone_12.75.png qml/Wizard/Pages/data/timezonemap/timezone_12.png qml/Wizard/Pages/data/timezonemap/timezone_13.png qml/Wizard/Pages/data/timezonemap/timezone_2.png qml/Wizard/Pages/data/timezonemap/timezone_3.5.png qml/Wizard/Pages/data/timezonemap/timezone_3.png qml/Wizard/Pages/data/timezonemap/timezone_4.5.png qml/Wizard/Pages/data/timezonemap/timezone_4.png qml/Wizard/Pages/data/timezonemap/timezone_5.5.png qml/Wizard/Pages/data/timezonemap/timezone_5.75.png qml/Wizard/Pages/data/timezonemap/timezone_5.png qml/Wizard/Pages/data/timezonemap/timezone_6.5.png qml/Wizard/Pages/data/timezonemap/timezone_6.png qml/Wizard/Pages/data/timezonemap/timezone_7.png qml/Wizard/Pages/data/timezonemap/timezone_8.5.png qml/Wizard/Pages/data/timezonemap/timezone_8.png qml/Wizard/Pages/data/timezonemap/timezone_9.5.png qml/Wizard/Pages/data/timezonemap/timezone_9.png qml/Wizard/Pages/passcode-desktop.qml+27−10 qml/Wizard/PasswordMeter.qml+3−1 qml/Wizard/Wizard.qml+6−2 qml/Wizard/WizardItemSelector.qml+128 qml/graphics/dropshadow_left@20.png qml/graphics/dropshadow_right@20.png run.sh−70 run_on_device.sh−164 src/CMakeLists.txt+1 src/Dash/main.cpp+23−21 src/SecondaryWindow.cpp+1−1 src/ShellApplication.cpp+11−1 src/UnixSignalHandler.cpp+3−5 src/main.cpp+2 tests/CMakeLists.txt+7−1 tests/autopilot/unity8/fixture_setup.py+1−1 tests/autopilot/unity8/greeter/tests/test_args.py−5 tests/autopilot/unity8/shell/tests/__init__.py+1−1 tests/data/unity/backgrounds/blue.png tests/data/unity/backgrounds/red.png tests/graphics/applicationIcons/browser@18.png tests/graphics/applicationIcons/calendar@18.png tests/graphics/applicationIcons/camera@18.png tests/graphics/applicationIcons/contacts-app@18.png tests/graphics/applicationIcons/dash.png tests/graphics/applicationIcons/dialer-app@18.png tests/graphics/applicationIcons/evernote@18.png tests/graphics/applicationIcons/facebook@18.png tests/graphics/applicationIcons/gallery@18.png tests/graphics/applicationIcons/gmail@18.png tests/graphics/applicationIcons/libreoffice@18.png tests/graphics/applicationIcons/map@18.png tests/graphics/applicationIcons/messages-app@18.png tests/graphics/applicationIcons/notepad@18.png tests/graphics/applicationIcons/pinterest@18.png tests/graphics/applicationIcons/soundcloud@18.png tests/graphics/applicationIcons/system-settings@18.png tests/graphics/applicationIcons/twitter@18.png tests/graphics/applicationIcons/weather@18.png tests/graphics/applicationIcons/wikipedia@18.png tests/graphics/applicationIcons/youtube@18.png tests/graphics/avatars/amanda@12.png tests/graphics/avatars/anna_olsson@12.png tests/graphics/avatars/funky@12.png tests/graphics/clock@18.png tests/mocks/AccountsService/AccountsService.cpp+24 tests/mocks/AccountsService/AccountsService.h+17−1 tests/mocks/AccountsService/AccountsService.qmltypes−41 tests/mocks/Biometryd/CMakeLists.txt+14 tests/mocks/Biometryd/MockBiometryd.cpp+43 tests/mocks/Biometryd/MockBiometryd.h+50 tests/mocks/Biometryd/MockDevice.cpp+29 tests/mocks/Biometryd/MockDevice.h+40 tests/mocks/Biometryd/MockIdentifier.cpp+28 tests/mocks/Biometryd/MockIdentifier.h+36 tests/mocks/Biometryd/MockObserver.cpp+22 tests/mocks/Biometryd/MockObserver.h+37 tests/mocks/Biometryd/MockOperation.cpp+56 tests/mocks/Biometryd/MockOperation.h+48 tests/mocks/Biometryd/plugin.cpp+41 tests/mocks/Biometryd/plugin.h+31 tests/mocks/Biometryd/qmldir+3 tests/mocks/CMakeLists.txt+2−1 tests/mocks/GSettings.1.0/GSettings.qmltypes−42 tests/mocks/GSettings.1.0/fake_gsettings.cpp+1−1 tests/mocks/IntegratedLightDM/qmldir−3 tests/mocks/LightDM/CMakeLists.txt+1 tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes → tests/mocks/LightDM/IntegratedLightDM.qmltypes tests/mocks/IntegratedLightDM/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/CMakeLists.txt+9−7 tests/mocks/IntegratedLightDM/MockGreeter.cpp → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpp+16 tests/mocks/IntegratedLightDM/MockGreeter.h → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.h+5 tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.cpp+37 tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.h+34 tests/mocks/IntegratedLightDM/MockUsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.cpp tests/mocks/IntegratedLightDM/MockUsersModel.h → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.h tests/mocks/IntegratedLightDM/QLightDM/Greeter → tests/mocks/LightDM/IntegratedLightDM/QLightDM/Greeter tests/mocks/LightDM/IntegratedLightDM/QLightDM/SessionsModel+17 tests/mocks/IntegratedLightDM/QLightDM/UsersModel → tests/mocks/LightDM/IntegratedLightDM/QLightDM/UsersModel tests/mocks/IntegratedLightDM/liblightdm/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txt+4−2 tests/mocks/IntegratedLightDM/liblightdm/Greeter.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp+9−2 tests/mocks/IntegratedLightDM/liblightdm/Greeter.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.h+1 tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h+1 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp+99 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h+72 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp+73 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h+59 tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpp+4−1 tests/mocks/IntegratedLightDM/liblightdm/UsersModel.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.h+2−1 tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+29−23 tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h+2−1 tests/mocks/IntegratedLightDM/plugin.cpp → tests/mocks/LightDM/IntegratedLightDM/plugin.cpp+15−4 tests/mocks/IntegratedLightDM/plugin.h → tests/mocks/LightDM/IntegratedLightDM/plugin.h+1−1 tests/mocks/LightDM/IntegratedLightDM/qmldir+2 tests/mocks/Lights/Lights.qmltypes−45 tests/mocks/MeeGo/QOfono/QOfono.qmltypes−30 tests/mocks/Powerd/Powerd.qmltypes−39 tests/mocks/QMenuModel/QMenuModel.qmltypes−111 tests/mocks/QtMultimedia/CMakeLists.txt+8−2 tests/mocks/QtMultimedia/QtMultimedia.qmltypes−62 tests/mocks/QtMultimedia/VideoSurface.qml+111 tests/mocks/QtMultimedia/audio.cpp−132 tests/mocks/QtMultimedia/audio.h−103 tests/mocks/QtMultimedia/mediaplayer.cpp+318 tests/mocks/QtMultimedia/mediaplayer.h+223 tests/mocks/QtMultimedia/plugin.cpp+7−3 tests/mocks/QtMultimedia/videooutput.cpp+127 tests/mocks/QtMultimedia/videooutput.h+52 tests/mocks/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypes−60 tests/mocks/Ubuntu/Payments/Payments.qmltypes−44 tests/mocks/Ubuntu/SystemImage/MockSystemImage.cpp+24−1 tests/mocks/Ubuntu/SystemImage/MockSystemImage.h+22−2 tests/mocks/Ubuntu/SystemImage/SystemImage.qmltypes−20 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/LanguagePlugin.qmltypes−10 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qml+3−2 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/SecurityPrivacy.qmltypes−39 tests/mocks/Ubuntu/Telephony/Telephony.qmltypes−58 tests/mocks/Ubuntu/Thumbnailer/Thumbnailer.qmltypes−17 tests/mocks/Unity/Application/Application.qmltypes−517 tests/mocks/Unity/Application/ApplicationInfo.cpp+29−35 tests/mocks/Unity/Application/ApplicationInfo.h+5−8 tests/mocks/Unity/Application/ApplicationManager.cpp+18−11 tests/mocks/Unity/Application/CMakeLists.txt−1 tests/mocks/Unity/Application/MirSurface.cpp+26 tests/mocks/Unity/Application/MirSurface.h+10 tests/mocks/Unity/Application/MirSurfaceItem.cpp+37−10 tests/mocks/Unity/Application/MirSurfaceItem.h+2 tests/mocks/Unity/Application/MirSurfaceListModel.cpp+13−3 tests/mocks/Unity/Application/MirSurfaceListModel.h+1 tests/mocks/Unity/Application/UbuntuKeyboardInfo.cpp−58 tests/mocks/Unity/Application/UbuntuKeyboardInfo.h−57 tests/mocks/Unity/Application/VirtualKeyboard.cpp+20−1 tests/mocks/Unity/Application/VirtualKeyboard.h+4−1 tests/mocks/Unity/Application/plugin.cpp−8 tests/mocks/Unity/Application/resources/VirtualKeyboard.qml+1−6 tests/mocks/Unity/Application/resources/screenshots/browser@12.png tests/mocks/Unity/Application/resources/screenshots/camera@12.png tests/mocks/Unity/Application/resources/screenshots/dialer@12.png tests/mocks/Unity/Application/resources/screenshots/facebook@12.png tests/mocks/Unity/Application/resources/screenshots/gallery@12.png tests/mocks/Unity/Application/resources/screenshots/libreoffice@12.png tests/mocks/Unity/Application/resources/screenshots/map@12.png tests/mocks/Unity/Application/resources/screenshots/music@12.png tests/mocks/Unity/Application/resources/screenshots/twitter@12.png tests/mocks/Unity/Application/resources/screenshots/unity8-dash@12.png tests/mocks/Unity/Application/resources/screenshots/vkb_portrait.png tests/mocks/Unity/Application/resources/vkb_portrait.png tests/mocks/Unity/Connectivity/Connectivity.qmltypes−20 tests/mocks/Unity/DashCommunicator/DashCommunicator.qmltypes−46 tests/mocks/Unity/Indicators/CMakeLists.txt−2 tests/mocks/Unity/Indicators/Indicators.qmltypes−232 tests/mocks/Unity/Indicators/IndicatorsModel.qml+31−5 tests/mocks/Unity/Indicators/fakeindicatorsmodeldata.js+1−1 tests/mocks/Unity/Launcher/CMakeLists.txt+1−1 tests/mocks/Unity/Launcher/Launcher.qmltypes−187 tests/mocks/Unity/Launcher/MockLauncherItem.cpp+14 tests/mocks/Unity/Launcher/MockLauncherItem.h+3 tests/mocks/Unity/Launcher/MockLauncherModel.cpp+8 tests/mocks/Unity/Launcher/MockLauncherModel.h+1−1 tests/mocks/Unity/Notifications/MockNotification.cpp+15 tests/mocks/Unity/Notifications/MockNotification.h+5 tests/mocks/Unity/Notifications/MockNotificationModel.cpp+4−6 tests/mocks/Unity/Notifications/MockNotificationModel.h+2−4 tests/mocks/Unity/Notifications/Notifications.qmltypes−149 tests/mocks/Unity/Unity.qmltypes−469 tests/mocks/Unity/fake_optionselectorfilter.cpp+5 tests/mocks/Unity/fake_optionselectorfilter.h+2 tests/mocks/Unity/fake_optionselectoroptions.cpp+13 tests/mocks/Unity/fake_optionselectoroptions.h+2 tests/mocks/Unity/fake_previewmodel.cpp+1−1 tests/mocks/Unity/fake_scope.cpp+11−2 tests/mocks/Unity/fake_scope.h+1 tests/mocks/Unity/fake_scopes.cpp+1 tests/mocks/Unity/fake_scopesoverview.cpp+1−1 tests/mocks/Utils/CMakeLists.txt+5−1 tests/mocks/Utils/Utils.qmltypes−178 tests/mocks/Utils/windowstatestorage.cpp+2−2 tests/mocks/Utils/windowstatestorage.h+1−1 tests/mocks/Wizard/CMakeLists.txt+6−3 tests/mocks/Wizard/MockSystem.cpp+8 tests/mocks/Wizard/MockSystem.h+4 tests/mocks/Wizard/Wizard.qmltypes−37 tests/mocks/Wizard/mockplugin.cpp+2 tests/mocks/libusermetrics/libusermetricsoutput/ColorTheme.h−1 tests/mocks/libusermetrics/libusermetricsoutput/UserMetrics.h−1 tests/plugins/AccountsService/CMakeLists.txt−5 tests/plugins/CMakeLists.txt+1−1 tests/plugins/Cursor/tst_Cursor.qml+8−1 tests/plugins/Dash/CMakeLists.txt+4 tests/plugins/Dash/cardcreator/1.res+15−29 tests/plugins/Dash/cardcreator/1.res.cardcreator+9−26 tests/plugins/Dash/cardcreator/10.res+5−5 tests/plugins/Dash/cardcreator/10.res.cardcreator+1−2 tests/plugins/Dash/cardcreator/11.res+17−31 tests/plugins/Dash/cardcreator/11.res.cardcreator+9−26 tests/plugins/Dash/cardcreator/12.res+15−29 tests/plugins/Dash/cardcreator/12.res.cardcreator+9−26 tests/plugins/Dash/cardcreator/2.res+5−5 tests/plugins/Dash/cardcreator/2.res.cardcreator+1−2 tests/plugins/Dash/cardcreator/3.res+16−29 tests/plugins/Dash/cardcreator/3.res.cardcreator+11−27 tests/plugins/Dash/cardcreator/4.res+5−5 tests/plugins/Dash/cardcreator/4.res.cardcreator+1−2 tests/plugins/Dash/cardcreator/5.res+16−30 tests/plugins/Dash/cardcreator/5.res.cardcreator+10−27 tests/plugins/Dash/cardcreator/6.res+3−3 tests/plugins/Dash/cardcreator/6.res.cardcreator+1−2 tests/plugins/Dash/cardcreator/7.res+5−5 tests/plugins/Dash/cardcreator/7.res.cardcreator+1−2 tests/plugins/Dash/cardcreator/8.res+5−5 tests/plugins/Dash/cardcreator/8.res.cardcreator+1−2 tests/plugins/Dash/cardcreator/9.res+4−4 tests/plugins/Dash/cardcreator/9.res.cardcreator−1 tests/plugins/Dash/horizontaljournaltest.cpp+1−4 tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp+1−4 tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+7−4 tests/plugins/Dash/listviewwithpageheadertest.cpp+1−4 tests/plugins/Dash/listviewwithpageheadertestsection.qml+12−1 tests/plugins/Dash/organicgridtest.cpp+1−4 tests/plugins/Dash/verticaljournaltest.cpp+63−4 tests/plugins/LightDM/CMakeLists.txt+1 tests/plugins/IntegratedLightDM/CMakeLists.txt → tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt+36−13 tests/plugins/IntegratedLightDM/dbus.cpp → tests/plugins/LightDM/IntegratedLightDM/dbus.cpp tests/plugins/IntegratedLightDM/greeter.qml → tests/plugins/LightDM/IntegratedLightDM/greeter.qml+1−1 tests/plugins/IntegratedLightDM/integrated.cpp → tests/plugins/LightDM/IntegratedLightDM/integrated.cpp tests/plugins/IntegratedLightDM/pam.cpp → tests/plugins/LightDM/IntegratedLightDM/pam.cpp tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cpp+96 tests/plugins/IntegratedLightDM/usersmodel.cpp → tests/plugins/LightDM/IntegratedLightDM/usersmodel.cpp tests/plugins/Ubuntu/Gestures/CMakeLists.txt+4−2 tests/plugins/Ubuntu/Gestures/GestureTest.cpp+3−3 tests/plugins/Ubuntu/Gestures/GestureTest.h+4−5 tests/plugins/Ubuntu/Gestures/tst_AxisVelocityCalculator.cpp+1−1 tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+1−1 tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+3−1 tests/plugins/Unity/Launcher/CMakeLists.txt+1−1 tests/plugins/Unity/Launcher/launchermodeltest.cpp+43−4 tests/plugins/Unity/Session/CMakeLists.txt+29−1 tests/plugins/Unity/Session/LightDMServer.cpp+29 tests/plugins/Unity/Session/LightDMServer.h+38 tests/plugins/Unity/Session/LogindServer.cpp+33 tests/plugins/Unity/Session/LogindServer.h+43 tests/plugins/Unity/Session/interfaces.xml+17 tests/plugins/Unity/Session/server.cpp+50 tests/plugins/Unity/Session/sessionbackendtest.cpp+15−1 tests/plugins/Wizard/tst_pagelist.cpp+30−1 tests/qmltests/CMakeLists.txt+3−1 tests/qmltests/Components/CMakeLists.txt+5−1 tests/qmltests/Components/tst_DragHandle.cpp+2−2 tests/qmltests/Components/tst_EdgeDragEvaluator.cpp+2−2 tests/qmltests/Components/tst_LazyImage/portrait.png tests/qmltests/Components/tst_LazyImage/square.png tests/qmltests/Components/tst_LazyImage/wide.png tests/qmltests/Components/tst_Lockscreen.qml+20−1 tests/qmltests/Components/tst_MediaServices.qml+230 tests/qmltests/Components/tst_PhysicalKeysMapper.qml+12−21 tests/qmltests/Dash/Previews/tst_PreviewSharing.qml → tests/qmltests/Components/tst_SharingPicker.qml+8−8 tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+8−10 tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+23−4 tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+1−1 tests/qmltests/Dash/Previews/tst_PreviewInlineVideo.qml+114 tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qml+3−3 tests/qmltests/Dash/Previews/tst_PreviewRatingDisplayCreationRanges.qml+51−15 tests/qmltests/Dash/Previews/tst_PreviewRatingEdit.qml+3 tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+17−16 tests/qmltests/Dash/artwork/avatar@12.png tests/qmltests/Dash/artwork/background.png tests/qmltests/Dash/artwork/checkers.png tests/qmltests/Dash/artwork/emblem.png tests/qmltests/Dash/artwork/music-player-design.png tests/qmltests/Dash/tst_Card.qml+1−1 tests/qmltests/Dash/tst_CardCarousel.qml+24 tests/qmltests/Dash/tst_Dash.qml+84−73 tests/qmltests/Dash/tst_DashContent.qml+50−7 tests/qmltests/Dash/tst_DashPageHeader.qml+44−3 tests/qmltests/Dash/tst_DashShell.qml+7−1 tests/qmltests/Dash/tst_GenericScopeView.qml+35 tests/qmltests/Greeter/TestView.qml+10−3 tests/qmltests/Greeter/tst_Greeter.qml+202−23 tests/qmltests/Greeter/tst_Infographics.qml+1−1 tests/qmltests/Greeter/tst_NarrowView.qml+23−2 tests/qmltests/Greeter/tst_WideView.qml+107−34 tests/qmltests/Launcher/tst_Launcher.qml+72−14 tests/qmltests/Notifications/Notification.qml+1 tests/qmltests/Notifications/tst_Notifications.qml+79−29 tests/qmltests/Notifications/tst_OptionToggle.qml+1−16 tests/qmltests/Notifications/tst_SwipeToAct.qml+4−18 tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+7−23 tests/qmltests/Panel/tst_IndicatorItemRow.qml+26−1 tests/qmltests/Panel/tst_IndicatorsBar.qml+3−3 tests/qmltests/Panel/tst_IndicatorsMenu.qml+33−4 tests/qmltests/Stages/ApplicationCheckBox.qml+1−1 tests/qmltests/Stages/SurfaceManagerControls.qml+1−1 tests/qmltests/Stages/tst_ApplicationWindow.qml+39−11 tests/qmltests/Stages/tst_DesktopStage.qml+160 tests/qmltests/Stages/tst_PhoneStage.qml+3−3 tests/qmltests/Stages/tst_SpreadDelegate.qml+115−12 tests/qmltests/Stages/tst_TabletStage.qml+168−38 tests/qmltests/Stages/tst_WindowResizeArea.qml+36−34 tests/qmltests/Tutorial/tst_Tutorial.qml+176−210 tests/qmltests/UnityLogo.png tests/qmltests/Wizard/tst_Wizard.qml+47−2 tests/qmltests/tst_DisabledScreenNotice.qml+1−1 tests/qmltests/tst_OrientedShell.qml+99−52 tests/qmltests/tst_Shell.qml+149−42 tests/qmltests/tst_ShellWithPin.qml+8−6 tests/qmltests/utils/Unity/Test/tst_UnityTest.qml+31 tests/utils/modules/Unity/Test/CMakeLists.txt+6−1 tests/utils/modules/Unity/Test/Test.qmltypes−60 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+8−3 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+4−2 tests/utils/modules/Unity/Test/testutil.cpp+32−4 tests/utils/modules/Unity/Test/testutil.h+1 tools/registry-tracker.cpp+2−2 tools/scopetool.cpp+6−2
.crossbuilder/post_deploynew file+1
@@ -0,0 +1 @@
1+restart unity8
CMakeLists.txt+3−1
@@ -57,11 +57,12 @@ find_package(Qt5DBus 5.4 REQUIRED)
5757find_package(Qt5Concurrent 5.4 REQUIRED)
5858find_package(Qt5Sql 5.4 REQUIRED)
5959
60−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=17)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=21)
6161pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
6262pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
6363pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
6464pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
65+pkg_check_modules(GD3 REQUIRED gnome-desktop-3.0)
6566
6667pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
6768
@@ -128,6 +129,7 @@ set(SHELL_APP unity8)
128129set(DASH_APP unity8-dash)
129130set(SCOPE_TOOL unity-scope-tool)
130131set(INDICATORS_CLIENT_APP indicators-client)
132+set(GREETER_APP unity8-greeter)
131133set(MOCK_INDICATOR_SERVICE_APP unity-mock-indicator-service)
132134
133135include_directories(
CODING+20−59
@@ -15,23 +15,17 @@ download source
1515 $ bzr branch lp:unity8 ~/unity8/trunk
1616 $ cd ~/unity8/trunk
1717
18−install dependencies
18+install dependencies and build Unity 8
1919--------------------
20−If its your first time, install build dependencies
2120
2221$ cd ~/unity8/trunk
23−$ ./build.sh --setup
24−
25− this will:
26− - install the required dependencies to build, as well as run on the desktop
27− - it should also install unity-scope-home and unity-lens-application which
28− are technically "recommends", not strict dependencies
22+$ ./build.sh
2923
30−build Unity 8
31−-------------
24+ If its your first time, this will install the required dependencies to build and
25+ build it.
3226
33−$ cd ~/unity8/trunk
34−$ ./build.sh
27+ You might want to also install unity-scope-home and unity-scope-click which
28+ are technically "recommends", not strict dependencies
3529
3630You may also rebuild with the -c for clean, which just deletes the build
3731directory.
@@ -43,13 +37,15 @@ Running Unity 8 on your desktop
4337run the Unity 8 shell
4438---------------------
4539$ cd ~/unity8/trunk
46−$ ./run.sh
40+$ cd builddir
4741
48−Options can be passed to test the lock screen
49−$ ./run.sh -p OR -k
42+Each component of unity8 can be ran independently for development and testing
43+For example:
44+$ make tryShell
45+$ make tryLauncher
46+$ make tryLockscreen
5047
51−-p is for pin lock, for which the default prompt answer is "1234"
52−-k is for keylock passphrase, for which the default prompt answer is "password"
48+Check out the tests/qmltests/ directory for a list of things that can be ran.
5349
5450Notes
5551-----
@@ -70,50 +66,15 @@ Notes
7066
7167Running Unity 8 on devices
7268==========================
73−- Ubuntu Touch builds are currently only available in 14.04 flavour
74−- supported hardware should match one of those listed here
75− https://wiki.ubuntu.com/Touch/Devices#Running_fine
76−- follow the Ubuntu Touch install instructions for your chosen device
77− https://wiki.ubuntu.com/Touch/Install
78−- make sure your device is connected to a network
79−- also make sure you have your SSH key in ~/.ssh/id_rsa.pub (or install one
80− on the device yourself)
81−
82−$ cd ~/unity/trunk
83−$ ./run_on_device.sh --setup
84− this will:
85− - install your public SSH key on the device
86− - install the needed dependencies
8769
88−$ ./run_on_device.sh
89− this will:
90− - rsync the code to the device
91− - build on the device
92− - replace the running shell
93−
94−Options can be passed to test the lock screen
95−$ ./run_on_device.sh -p OR -k
96−
97−-p is for pin lock, for which the default prompt answer is "1234"
98−-k is for keylock passphrase, for which the default prompt answer is "password"
99−
100−Notes
101−-----
102−- using adb over TCP has some advantages, Google will be of help here
103− - NOTE: this is not yet available for flipped images
104− - TL;DR: `adb tcpip 5555; adb connect $your_device_ip`
105− - you can persist the above via `adb shell setprop persist.adb.tcp.port 5555`
106− - it's unsafe - anyone can connect to your device
107− - with TCP the Nexus 10 doesn't drop the adb connection when locking
108− the screen
109−- exporting ANDROID_SERIAL=$your_device_serial or
110− ANDROID_SERIAL=$your_device_ip:5555 will make adb not complain about
111− multiple devices
112−- you can export TARGET_IP=$your_device_ip TARGET_SSH_PORT=22 for run_on_device.sh
113− to not use adb forwarding - useful if you use multiple devices
114−- using Ninja (package ninja-build - run_on_device.sh -s installs this now)
115− will improve build times (especially in the nothing-to-build case)
70+Running unity8 on a device should be done using crossbuilder.
71+Go to
72+* https://launchpad.net/crossbuilder and
73+* https://wiki.ubuntu.com/Touch/Crossbuilder
74+for more details on crossbuilder.
11675
76+unity8 will automatically restart on the phone once deployment
77+has finished due to post-build-steps set up in this repository.
11778
11879Coding guidelines
11980=================
build.sh+6−37
@@ -9,7 +9,6 @@ usage() {
99 echo "usage: build [OPTIONS] [BUILD_TYPE]\n" >&2
1010 echo "Script to build the shell. If BUILD_TYPE is not specified, it defaults to \"debug\".\n" >&2
1111 echo "OPTIONS:" >&2
12− echo " -s, --setup Setup the build environment and branch Unity" >&2
1312 echo " -c, --clean Clean the build tree before building" >&2
1413 echo >&2
1514 exit 1
@@ -22,7 +21,6 @@ eval set -- "$ARGS"
2221while [ $# -gt 0 ]
2322do
2423 case "$1" in
25− -s|--setup) SETUP=true;;
2624 -c|--clean) CLEAN=true;;
2725 -h|--help) usage;;
2826 --) shift;break;;
@@ -35,31 +33,6 @@ done
3533BUILD_TYPE="debug"
3634[ $# -eq 1 ] && BUILD_TYPE="$1"
3735
38−install_dependencies() {
39− sudo apt-get update || exit 4
40− echo "Installing Unity 8 dependencies.."
41− sudo apt-get install devscripts \
42− equivs \
43− gsettings-desktop-schemas \
44− gsettings-ubuntu-schemas \
45− pay-service \
46− qmenumodel-qml \
47− qml-module-qtquick-layouts \
48− qml-module-qtquick-xmllistmodel \
49− qtdeclarative5-gsettings1.0 \
50− qtdeclarative5-ubuntu-ui-toolkit-plugin \
51− qtdeclarative5-ubuntu-settings-components \
52− qtdeclarative5-ubuntu-telephony0.1 \
53− qtdeclarative5-ubuntu-thumbnailer0.1 \
54− qtdeclarative5-unity-notifications-plugin \
55− qml-module-ubuntu-connectivity \
56− ubuntu-mobile-icons \
57− ubuntu-system-settings \
58− unity-plugin-scopes \
59− xvfb \
60− || exit 5
61−}
62−
6336mk_build_deps() {
6437 if [ ! -f control -o $CODE_DIR/debian/control -nt control ]; then
6538 sed 's/\:native//g' $CODE_DIR/debian/control > control
@@ -85,13 +58,9 @@ else
8558 BUILD_COMMAND="make -j$NUM_JOBS"
8659fi
8760
88−if $SETUP; then
89− install_dependencies
90−else
91− if $CLEAN; then rm -rf builddir; fi
92− mkdir -p builddir
93− cd builddir
94− mk_build_deps
95− cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CODE_DIR ${GENERATOR} || exit 6
96− ${BUILD_COMMAND} || exit 7
97−fi
61+if $CLEAN; then rm -rf builddir; fi
62+mkdir -p builddir
63+cd builddir
64+mk_build_deps
65+cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CODE_DIR ${GENERATOR} || exit 6
66+${BUILD_COMMAND} || exit 7
data/51-unity8-greeter.confnew file+2
@@ -0,0 +1,2 @@
1+[Seat:*]
2+greeter-session=unity8-greeter
data/CMakeLists.txt+11
@@ -2,6 +2,7 @@
22configure_file(${SHELL_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${SHELL_APP}.desktop @ONLY)
33configure_file(${DASH_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop @ONLY)
44configure_file(${INDICATORS_CLIENT_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${INDICATORS_CLIENT_APP}.desktop @ONLY)
5+configure_file(${GREETER_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${GREETER_APP}.desktop @ONLY)
56
67# install desktop files
78install(FILES
@@ -11,6 +12,16 @@ install(FILES
1112 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
1213 )
1314
15+install(FILES
16+ ${CMAKE_CURRENT_BINARY_DIR}/${GREETER_APP}.desktop
17+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/greeters
18+ )
19+
20+install(FILES
21+ 51-unity8-greeter.conf
22+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/lightdm.conf.d
23+ )
24+
1425# install dash icon
1526install(FILES
1627 ${CMAKE_CURRENT_SOURCE_DIR}/${DASH_APP}.png
data/unity8-dash.png

Binary file not shown.

data/unity8-greeter-init.confnew file+12
@@ -0,0 +1,12 @@
1+description "Unity 8 Greeter initialization"
2+author "Michael Terry <mterry@ubuntu.com>"
3+
4+start on unity8-greeter-started
5+task
6+emits indicator-services-start
7+
8+script
9+ start --no-wait ofono-setup || true
10+ initctl emit --no-wait indicator-services-start || true
11+ start --no-wait maliit-server || true
12+end script
data/unity8-greeter-wrappernew file+98
@@ -0,0 +1,98 @@
1+#!/bin/sh
2+# -*- Mode: sh; indent-tabs-mode: nil; tab-width: 4 -*-
3+#
4+# Copyright (C) 2011,2013 Canonical Ltd
5+# Author: Michael Terry <michael.terry@canonical.com>
6+#
7+# This program is free software: you can redistribute it and/or modify it under
8+# the terms of the GNU General Public License as published by the Free Software
9+# Foundation, version 3 of the License.
10+#
11+# See http://www.gnu.org/copyleft/gpl.html the full text of the license.
12+
13+# This wrapper merely ensures that init and friends live only as long as this
14+# script does. Otherwise, it's very easy for some processes to not notice that
15+# the session died. We could try to do this in-process, but we want to do this
16+# cleanup even if the greeter aborts.
17+
18+trap cleanup TERM EXIT
19+
20+cleanup()
21+{
22+ trap - TERM EXIT
23+ # Kill upstart and indicators
24+ if [ -n "$INIT_PID" ]; then
25+ kill "$INIT_PID"
26+ fi
27+ if [ -n "$CMD_PID" ]; then
28+ kill "$CMD_PID"
29+ fi
30+ exit 0
31+}
32+
33+set_greeter_var()
34+{
35+ export "$1=$2"
36+ gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "{'$1': '$2'}"
37+ if [ -n "$INIT_PID" ]; then
38+ initctl set-env --global "$1=$2"
39+ fi
40+}
41+
42+SUB_SOCKET=$XDG_RUNTIME_DIR/mir_socket
43+rm -f $SUB_SOCKET # clear socket in case we were hard shut down
44+
45+# If touch session script (which sets up grid units and mir variables) is available, use it
46+TOUCH_WRAPPER=
47+if [ -x /usr/bin/ubuntu-touch-session ]; then
48+ TOUCH_WRAPPER=/usr/bin/ubuntu-touch-session
49+fi
50+
51+# Pretend that we're in an ubuntu-touch session, so that indicator-network
52+# will start.
53+export DESKTOP_SESSION=ubuntu-touch
54+
55+# We disable ofono using pulse. It causes problems with racing with the user's
56+# pulse. We need to come up with a better long-term fix for this, because we
57+# eventually need the greeter to play ringtones for users that aren't logged in.
58+set_greeter_var PA_DISABLED 1
59+
60+# Normal unity8 sessions are entirely driven by Upstart. But greeters
61+# are special. They need access to the file descriptors that lightdm
62+# creates for them and don't want to start all the services that a normal
63+# session would. So it's inconvenient to live within an upstart session.
64+# But... we still want to use Upstart for some services. So launch here.
65+MIR_SOCKET=$SUB_SOCKET $TOUCH_WRAPPER /sbin/upstart --user --no-startup-event &
66+INIT_PID=$!
67+while [ ! -e "$XDG_RUNTIME_DIR/upstart/sessions/$INIT_PID.session" ]; do sleep 0.1; done
68+export UPSTART_SESSION=$(/sbin/initctl list-sessions | grep "^$INIT_PID " | cut -d' ' -f2)
69+
70+# Start any pre-greeter tasks if needed (like wizard)
71+/sbin/initctl emit unity8-greeter-starting
72+
73+# Define language here for phone if available. When phone user switches their
74+# language, they expect that to affect the greeter too. But the user doesn't
75+# have permission to switch system language, only their own. So we notice if
76+# the phablet user exists and use their language if so. TODO: talk to design
77+# about whether we should switch language on fly as users are selected (this
78+# is very hard to do technically).
79+#
80+# Do this after unity8-greeter-starting, in case a customization upstart job
81+# changes language.
82+if [ "$(id -u phablet 2>/dev/null)" = "32011" ]; then
83+ USER_LANG=$(gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get org.freedesktop.Accounts.User Language | cut -d\' -f2)
84+ if [ -n "$USER_LANG" ]; then
85+ set_greeter_var LANGUAGE "$USER_LANG"
86+ fi
87+ USER_LOCALE=$(gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get org.freedesktop.Accounts.User FormatsLocale | cut -d\' -f2)
88+ if [ -n "$USER_LOCALE" ]; then
89+ set_greeter_var LANG "$USER_LOCALE"
90+ set_greeter_var LC_ALL "$USER_LOCALE"
91+ fi
92+fi
93+
94+# And finally actually start the greeter
95+exec env QT_QPA_PLATFORM=ubuntumirclient MIR_SERVER_FILE=$SUB_SOCKET $TOUCH_WRAPPER $@ &
96+CMD_PID=$!
97+wait $CMD_PID
98+CMD_PID=
data/unity8-greeter.desktop.innew file+7
@@ -0,0 +1,7 @@
1+[Desktop Entry]
2+Type=Application
3+Name=Unity 8 Greeter
4+Comment=The converged Unity shell's Greeter
5+Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8-greeter-wrapper @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8 --mode=greeter
6+X-LightDM-Session-Type=mir
7+X-Ubuntu-Touch=true
data/unity8-greeter.pklanew file+44
@@ -0,0 +1,44 @@
1+# DO NOT EDIT THIS FILE, it will be overwritten on update
2+# Place your local configurations under /etc/polkit-1/localauthority/
3+
4+[Disable Controlling of Network Devices]
5+Identity=unix-user:lightdm
6+Action=org.freedesktop.NetworkManager.enable-disable-network;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.enable-disable-wwan;org.freedesktop.NetworkManager.enable-disable-wimax;
7+ResultActive=no
8+ResultInactive=no
9+ResultsAny=no
10+
11+[Disable Sleep and Wake]
12+Identity=unix-user:lightdm
13+Action=org.freedesktop.NetworkManager.sleep-wake
14+ResultActive=no
15+ResultInactive=no
16+ResultsAny=no
17+
18+[Disable WiFi Sharing]
19+Identity=unix-user:lightdm
20+Action=org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open
21+ResultActive=no
22+ResultInactive=no
23+ResultsAny=no
24+
25+[Disable Settings Modifications]
26+Identity=unix-user:lightdm
27+Action=org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.settings.modify.hostname
28+ResultActive=no
29+ResultInactive=no
30+ResultsAny=no
31+
32+[Disable User Connections]
33+Identity=unix-user:lightdm
34+Action=org.freedesktop.NetworkManager.use-user-connections
35+ResultActive=no
36+ResultInactive=no
37+ResultsAny=no
38+
39+[Enable Controlling of Network Connections]
40+Identity=unix-user:lightdm
41+Action=org.freedesktop.NetworkManager.network-control
42+ResultActive=yes
43+ResultInactive=no
44+ResultsAny=no
data/unity8.conf+25−2
@@ -3,7 +3,7 @@ author "Ricardo Mendoza <ricmm@ubuntu.com>"
33
44emits indicator-services-start
55
6−start on ((xsession SESSION=ubuntu-touch) or (xsession SESSION=unity8-mir)) and started dbus
6+start on ((xsession SESSION=ubuntu-touch) or (xsession SESSION=unity8-mir) or (xsession SESSION=unity8)) and started dbus
77stop on desktop-end
88
99kill timeout 120
@@ -50,11 +50,34 @@ pre-start script
5050 # the lag seen in the indicator panel pull-down (LP: #1488327) and also
5151 # reduces lag seen in apps:
5252 initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
53+
54+ if [ "$XDG_SESSION_DESKTOP" = "ubuntu-touch" ]; then
55+ # On Ubuntu Touch, we currently use a trick where we auto-login the
56+ # user without a LightDM greeter at all. In this case, we want to
57+ # start with the lockscreen visible. Once we switch to using a
58+ # proper greeter for the first login, we can remove this code path.
59+ initctl set-env MODE=full-greeter
60+ else
61+ initctl set-env MODE=full-shell
62+ fi
5363end script
5464
55−exec ${BINARY:-unity8} $ARGS
65+exec ${BINARY:-unity8} --mode=$MODE $ARGS
5666
5767post-start script
68+ # If no MIR_SOCKET was defined on launch, we try to set one here
69+ if [ -z "$(initctl get-env --global UNITY_MIR_SOCKET)" ]; then
70+ if [ -S "$XDG_RUNTIME_DIR/mir_socket" ]; then
71+ mir_socket=$XDG_RUNTIME_DIR/mir_socket
72+ elif [ -S "/tmp/mir_socket" ]; then
73+ mir_socket=/tmp/mir_socket
74+ fi
75+
76+ if [ -n "$mir_socket" ]; then
77+ initctl set-env --global MIR_SOCKET="$mir_socket"
78+ fi
79+ fi
80+
5881 initctl emit --no-wait indicator-services-start
5982end script
6083
debian/changelog+323
@@ -1,3 +1,326 @@
1+unity8 (8.14+16.10.20160831.3-0ubuntu1) yakkety; urgency=medium
2+
3+ [ Daniel d'Andrada ]
4+ * Added implementation for MirSurfaceInterface::persistentId
5+
6+ -- Ken VanDine <ken.vandine@canonical.com> Wed, 31 Aug 2016 11:56:09 +0000
7+
8+unity8 (8.14+16.10.20160826-0ubuntu1) yakkety; urgency=medium
9+
10+ * Make sure we emit sounds when taking a screenshot even after media-
11+ hub (LP: #1544477)
12+
13+ -- Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com> Fri, 26 Aug 2016 08:14:14 +0000
14+
15+unity8 (8.14+16.10.20160819-0ubuntu1) yakkety; urgency=medium
16+
17+ [ Lukáš Tinkl ]
18+ * Reset topmostIsFullscreen to correctly rotate the shell when
19+ dismissing SIM PIN screen (LP: #1614070)
20+
21+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 19 Aug 2016 14:16:54 +0000
22+
23+unity8 (8.14+16.10.20160811.1-0ubuntu1) yakkety; urgency=medium
24+
25+ [ Albert Astals Cid ]
26+ * Take into account carousel selectedItemScaleFactor when setting card
27+ fixedArtShapeSize (LP: #1599238)
28+ * Remove unused LimitProxyModel
29+ * Do not calculate implicitHeight for Cards in a CardGrid
30+ * Small clazy fixes
31+
32+ [ Daniel d'Andrada ]
33+ * Remove stage property from Application
34+
35+ [ Larry Price ]
36+ * Allow libertine-scope to show empty search result hint unmodified.
37+ (LP: #1606693)
38+
39+ [ Lukáš Tinkl ]
40+ * Open the quicklist (context) menu also using the Menu key (LP:
41+ #1608265)
42+ * Fix incorrect SIM PIN dialog position when entering a wrong PIN (LP:
43+ #1596076)
44+ * Apply the correct keymap also on prompt surfaces (LP: #1610124)
45+ * Implement an optional system update feature during OOBE wizard (LP:
46+ #1580785)
47+ * Implement a page for choosing HW keyboard layout in OOBE wizard
48+
49+ [ Michael Zanetti ]
50+ * Clean up some build script legacy
51+ * Add a crossbuilder_post file to make crossbuilder restart unity8
52+ after deploying
53+ * fixes for the automatic switching between usage modes (LP: #1590944)
54+
55+ [ Omer Akram ]
56+ * Add object names for setup wizard
57+
58+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 11 Aug 2016 06:28:20 +0000
59+
60+unity8 (8.14+16.10.20160803-0ubuntu1) yakkety; urgency=medium
61+
62+ [ Albert Astals Cid ]
63+ * Fix DisabledScreenNotice::test_rotation
64+ * Make the delegate of DashNavigationList an async Loader
65+ * unity-scope-tool: Use parse instead of process
66+ * VerticalJournal improvements regarding model insertions and item
67+ height changes (LP: #1599754)
68+ * Add math.h includes for compilation in yakkety (LP: #1605502)
69+
70+ [ Andrea Cimitan ]
71+ * Unfocus the search text field in the dash page header when requested
72+ (LP: #1590820)
73+ * Use binding for filter popover contentWidth (LP: #1595116)
74+ * Add few sourceSize for Image we forgot (LP: #1595113)
75+ * Replace Flickable with an Item inside DashPageHeader for
76+ headerContainer (LP: #1599235)
77+
78+ [ Albert Astals Cid, Andrea Cimitan ]
79+ * Unbox the artshapeLoader
80+
81+ [ Daniel d'Andrada ]
82+ * Fix splashscreen orientation when app rotates own contents (LP:
83+ #1586050)
84+ * tst_PreviewIconActions: Make test name match filename
85+ * Cursor: make its size grid unit based (LP: #1604014)
86+ * TouchEventSequenceWrapper: item might get deleted when touch
87+ sequence is committed (LP: #1607686)
88+
89+ [ Lukáš Tinkl ]
90+ * Implement frontend support for running keyboard indicator
91+ * Provide window/surface close shortcuts across all the stages (LP:
92+ #1578392, #1606528)
93+ * Restart the location trust prompt service when exiting the wizard
94+ (LP: #1594430)
95+ * Implement clearing the search and closing the panel on pressing
96+ Escape key in the dash header
97+ * Fix log timestamps (LP: #1602196)
98+ * Don't display the mode switch warning dialog on tablets (LP:
99+ #1600290)
100+
101+ [ Michael Terry ]
102+ * Fix indicator profile bug that caused sound indicator to say Mute
103+ instead of Silent Mode. (LP: #1604205)
104+ * Fix lockscreen appearing right after unlocking a locked session on
105+ the desktop. (LP: #1604374)
106+
107+ [ Michał Sawicz ]
108+ * Add arm64 support, drop unnecessary B-D on web plugin
109+
110+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 03 Aug 2016 15:56:27 +0000
111+
112+unity8 (8.14+16.10.20160728-0ubuntu1) yakkety; urgency=medium
113+
114+ [ Zoltán Balogh ]
115+ * Bump the version to secure UITK compatibility
116+
117+ [ Albert Astals Cid ]
118+ * Pass the correct number of arguments to mapToItem (LP: #1606835)
119+
120+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 28 Jul 2016 08:17:13 +0000
121+
122+unity8 (8.13+16.10.20160714+fix1-0ubuntu2~1) yakkety; urgency=medium
123+
124+ * Rebuild against Qt 5.6.
125+ * Add https://code.launchpad.net/~aacid/unity8/floor_includes/+merge/300850
126+
127+ -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Fri, 22 Jul 2016 09:03:54 +0300
128+
129+unity8 (8.13+16.10.20160714-0ubuntu1) yakkety; urgency=medium
130+
131+ [ Daniel d'Andrada ]
132+ * Make use of MirSurface::inputBounds and drop UbuntuKeyboardInfo hack
133+
134+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 14 Jul 2016 07:09:29 +0000
135+
136+unity8 (8.12+16.10.20160711-0ubuntu1) yakkety; urgency=medium
137+
138+ [ Josh Arenson ]
139+ * Add a SessionsModel to lightdm to support the greeter's session
140+ chooser
141+ * Add unity8-greeter package which contains a basic, but usable
142+ LightDM greeter. (LP: #1324602)
143+
144+ [ Michael Terry ]
145+ * Make sure indicators and launcher hide when power button is pressed
146+ on greeter. (LP: #1595569)
147+ * Fix tablet greeter focus to be always-on, no longer hiding the OSK
148+ or forcing a mouse click to type a password. (LP: #1435923)
149+
150+ -- Michael Terry <michael.terry@canonical.com> Mon, 11 Jul 2016 17:24:20 +0000
151+
152+unity8 (8.12+16.10.20160707-0ubuntu1) yakkety; urgency=medium
153+
154+ [ Michael Zanetti ]
155+ * emit the correct role changed signal on count visible changed (LP:
156+ #1599925)
157+
158+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 07 Jul 2016 16:49:32 +0000
159+
160+unity8 (8.12+16.10.20160705-0ubuntu1) yakkety; urgency=medium
161+
162+ [ Michael Zanetti ]
163+ * don't displace windows if the OSK is on another screen (LP:
164+ #1598917)
165+
166+ -- Michał Sawicz <michal.sawicz@canonical.com> Tue, 05 Jul 2016 10:00:57 +0000
167+
168+unity8 (8.12+16.10.20160627.5-0ubuntu1) yakkety; urgency=medium
169+
170+ [ Albert Astals Cid ]
171+ * Stop watching the old header item height once it's not our header
172+ anymore
173+ * LVWPH: cull the header item when not on view to save some painting
174+ * Adapt test to new mock behaviour
175+ * Don't let the mouse go outside the parentItem (LP: #1525350)
176+ * Use non deprecated package names
177+ * Mark system includes as such
178+ * Fix initialization order warning
179+ * Do not rely on deleteLater not crashing on null pointers
180+ * Add more headers of classes we use for automoc to be run
181+ * CardTool: Fix the fallback value to be a size and not an integer
182+ * CardTool: Include Ubuntu Components since we're using units.gu
183+ * Rework tst_PreviewRatingDisplayCreationRanges
184+
185+ [ Daniel d'Andrada ]
186+ * Cursor: Let AnimatedSprite run only on animated cursors and while
187+ the display is on (LP: #1588873, #1594358)
188+ * Fix missing screenshot when orientation changes while shell rotation
189+ ongoing (LP: #1587796)
190+
191+ [ Josh Arenson ]
192+ * Make PreviewRatingSingleDisplay visible again after editing a
193+ review. (LP: #1587097)
194+ * Correct errors in all png images to prevent libpng warnings.
195+
196+ [ Lukáš Tinkl ]
197+ * Fix some smaller issues with OOBE wizard password pages (LP:
198+ #1590467)
199+ * Prevent mouse wheel events from going through shell elements (LP:
200+ #1536268)
201+ * Do not let mouse and wheel events pass thru the titlebar (LP:
202+ #1588424)
203+ * Hide the maximize window button based on size restrictions (LP:
204+ #1541982)
205+
206+ [ Marco Trevisan (Treviño) ]
207+ * Unity8.conf: ensure MIR_SOCKET is set for future customers (such as
208+ the dash)
209+ * ClientIndicator: be more informative about loading failures for
210+ dynamically created objects
211+
212+ [ Michael Terry ]
213+ * Stop unity8 from getting in a "switch-to-greeter" loop when locking
214+ on a desktop. (LP: #1593718)
215+
216+ [ Michael Zanetti ]
217+ * set minimum window sizes on dash
218+ * displace application windows when the OSK would cover them
219+
220+ [ Nick Dedekind ]
221+ * Force dash to always stay in the main stage. (lp:#1592404) (LP:
222+ #1592404)
223+ * Save the last surface stage on stage drop. (LP: #1579003)
224+ * Default portrait only apps to the side stage. (LP: #1573153)
225+
226+ [ Albert Astals Cid, Andrea Cimitan, Michał Sawicz, Nick Dedekind ]
227+ * Added live video playback in dash previews
228+
229+ -- Michael Zanetti <michael.zanetti@canonical.com> Mon, 27 Jun 2016 18:48:59 +0000
230+
231+unity8 (8.12+16.10.20160620.3-0ubuntu1) yakkety; urgency=medium
232+
233+ [ Michael Terry, Michał Sawicz ]
234+ * Support unlocking via fingerprint, if one is registered.
235+
236+ -- Michael Terry <michael.terry@canonical.com> Mon, 20 Jun 2016 20:25:25 +0000
237+
238+unity8 (8.12+16.10.20160617-0ubuntu1) yakkety; urgency=medium
239+
240+ [ Michael Terry ]
241+ * Do not create Label/Icon if we don't need it
242+ * Fix Z-ordering of prompt surfaces (LP: #1586219)
243+ * Drop bottom edge tutorials completely and small fixes for other
244+ edges. (LP: #1565103)
245+ * Redo visuals for greeter prompt box. (LP: #1435923)
246+ * Make tutorial qmltests more robust. (LP: #1590810)
247+ * Stop showing an extra lockscreen in desktop unity8 sessions. (LP:
248+ #1582987)
249+
250+ [ Albert Astals Cid ]
251+ * Improve dash plugin mock
252+ * Stabilize PreviewExpandableTest::test_all_widgets_height
253+ * Workaround QTBUG-53460
254+ * Split artShape code for cardTool card and regular card
255+ * Simplify the code since fixedArtSize code is mandatory for regular
256+ cards
257+ * Desktop stage: Support rotatesWindowContents (LP: #1547481)
258+ * Turn if if else into if elseif else
259+ * Fix leaks in QInputDeviceManagerPrivate::addDevice
260+ * Do not call |= on uninitialized sigterm.sa_flags
261+ * initialize udevMonitor
262+ * Make notifier and notifierFd function local variables
263+ * Fix crash if a component that is not an Item is given to
264+ sectionDelegate
265+ * Tests: Do not use dynamic_cast if we're not going to test it anyway
266+ * Minor coverity fixes
267+ * Fix warning about anchors.fill in ProportionalShape (LP: #1590963)
268+ * Make wait in cleanup() wait for snapTo animation to have finished
269+
270+ [ Alexandros Frantzis ]
271+ * Improve the way notifications interact with power management (LP:
272+ #1570922)
273+
274+ [ Andrea Cimitan ]
275+ * Correctly refresh cardcreator cache on artshapestyle changes (LP:
276+ #1588335)
277+ * Same tweaks we have for click scope now for libertine
278+ * add a timer to pull to refresh to work on small windows (LP:
279+ #1589060)
280+
281+ [ Daniel d'Andrada ]
282+ * Clean up debug leftovers
283+ * Ensure mouse and window movement are pixel-aligned (LP: #1510382)
284+ * Fix SpreadDelegate rotation animations
285+ * No point in version-controlling files that are automatically
286+ generated
287+ * Center cursor on screen when it's first shown
288+ * Custom cursor name just have to start with "custom"
289+ * Work around AnimatedSprite infinite loop bug (LP: #1588929)
290+
291+ [ Josh Arenson ]
292+ * Disable showDash when it is already shown. (LP: #1506708)
293+ * Add a timestamp to the dash log (LP: #1580074)
294+ * Add timestamp to unity8 log (LP: #1498169)
295+
296+ [ Lukáš Tinkl ]
297+ * Implement keyboard shortcuts info panel
298+ * Implement window controls overlay activatable with 3 fingers tap
299+ (LP: #1489020)
300+ * Select correct Chinese input method for OSK in the wizard (LP:
301+ #1588633)
302+
303+ [ Michael Zanetti ]
304+ * Add support for the launcher surface pips displaying the correct
305+ number of surfaces
306+ * Add support for the persistent alert state. (LP: #1575147, #1584348,
307+ #1586621)
308+ * send a Alt-release event on alt+tab instead of delaying it
309+ completely and invoking it later (LP: #1565236)
310+
311+ [ Stephen M. Webb ]
312+ * added a new upstart $SESSION for unity8-desktop-session (LP:
313+ #1376715)
314+
315+ -- Michael Terry <michael.terry@canonical.com> Fri, 17 Jun 2016 01:22:57 +0000
316+
317+unity8 (8.12+16.10.20160601.1-0ubuntu1) yakkety; urgency=medium
318+
319+ [ Pawel Stolowski ]
320+ * Added apparmor profile for unity8-dash.
321+
322+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 01 Jun 2016 20:59:03 +0000
323+
1324unity8 (8.12+16.10.20160527-0ubuntu1) yakkety; urgency=medium
2325
3326 [ Albert Astals Cid ]
debian/control+39−21
@@ -5,9 +5,10 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
55Build-Depends: cmake,
66 dbus-test-runner,
77 debhelper (>= 9),
8+ dh-apparmor,
89 doxyqml,
910# To allow cross-compiling to work, we also must append :native
10−# to g++ so we don't try to run armhf g++
11+# to g++ so we don't try to run arm g++
1112# on an x86 CPU for example, when cross-compiling.
1213 g++:native,
1314 libandroid-properties-dev,
@@ -16,12 +17,14 @@ Build-Depends: cmake,
1617 libconnectivity-qt1-dev (>= 0.7.1),
1718 libevdev-dev,
1819 libgeonames-dev (>= 0.2),
19− libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
20+ libgnome-desktop-3-dev,
21+ libgl1-mesa-dev[!arm64 !armhf] | libgl-dev[!arm64 !armhf],
2022 libgl1-mesa-dri,
21− libgles2-mesa-dev[armhf],
23+ libgles2-mesa-dev[arm64 armhf],
2224 libglib2.0-dev,
2325 libgsettings-qt-dev,
2426 libhardware-dev,
27+ liblightdm-qt5-3-dev,
2528 libpam0g-dev,
2629 libpay2-dev,
2730 libpulse-dev,
@@ -29,25 +32,28 @@ Build-Depends: cmake,
2932 libqt5svg5-dev,
3033 libqt5xmlpatterns5-dev,
3134 libsystemsettings-dev,
32− libubuntugestures5-dev,
33− libubuntugestures5-private-dev,
35+ libubuntugestures5-dev (>= 1.3.2030),
36+ libubuntugestures5-private-dev (>= 1.3.2030),
3437 libudev-dev,
35− libunity-api-dev (>= 7.113),
38+ libunity-api-dev (>= 7.118),
3639 libusermetricsoutput1-dev,
3740# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
38− libx11-dev[!armhf],
39− libxcb1-dev[!armhf],
40− libxi-dev[!armhf],
41+ libx11-dev[!arm64 !armhf],
42+ libxcb1-dev[!arm64 !armhf],
43+ libxi-dev[!arm64 !armhf],
4144# End of X11 libs
4245 pkg-config,
4346 python3-all:any,
4447 python3-setuptools,
4548 qml-module-qt-labs-folderlistmodel,
49+ qml-module-qtmultimedia (>= 5.4.1-1ubuntu19~overlay2),
4650 qml-module-qtquick-layouts,
4751 qml-module-qtquick-xmllistmodel,
4852 qml-module-qtquick2,
4953 qml-module-qtsysteminfo,
5054 qml-module-qttest,
55+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
56+ qml-module-ubuntu-web,
5157 qt5-default,
5258 qtbase5-dev (>= 5.4),
5359 qtbase5-dev-tools,
@@ -55,11 +61,8 @@ Build-Depends: cmake,
5561 qtdeclarative5-dev (>= 5.4),
5662 qtdeclarative5-dev-tools,
5763 qtdeclarative5-private-dev (>= 5.4),
58− qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
5964 qtdeclarative5-ubuntu-content1,
6065 qtdeclarative5-ubuntu-settings-components (>= 0.7),
61− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
62− qtdeclarative5-ubuntu-web-plugin,
6366 ttf-ubuntu-font-family,
6467Standards-Version: 3.9.4
6568Homepage: http://launchpad.net/unity
@@ -72,15 +75,26 @@ XS-Testsuite: autopkgtest
7275X-Ubuntu-Use-Langpack: yes
7376
7477Package: indicators-client
75−Architecture: amd64 armhf i386
78+Architecture: any
7679Depends: qmenumodel-qml (>= 0.2.9),
77− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
80+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
7881 unity8 (= ${binary:Version}),
7982 ${misc:Depends},
8083 ${shlibs:Depends},
8184Description: Indicators client test application
8285 This package contains the client application for indicators used by autopilot
8386
87+Package: unity8-greeter
88+Architecture: any
89+Depends: unity8 (= ${binary:Version}),
90+ unity-system-compositor,
91+ ${misc:Depends},
92+ ${shlibs:Depends}
93+Recommends: lightdm
94+Provides: lightdm-greeter
95+Description: The Unity8 Greeter
96+ The Unity 8 greeter is the primary login greeter for Ubuntu devices.
97+
8498Package: unity-scope-tool
8599Architecture: any
86100Depends: unity8-common (= ${source:Version}),
@@ -102,9 +116,11 @@ Depends: dmz-cursor-theme,
102116 libcap2-bin,
103117 libglib2.0-bin,
104118 qmenumodel-qml (>= 0.2.9),
119+ qml-module-biometryd,
105120 qml-module-qt-labs-folderlistmodel,
106121 qml-module-qtquick-xmllistmodel,
107122 qml-module-qtsysteminfo,
123+ qml-module-ubuntu-web,
108124 qtdeclarative5-qtmir-plugin (>= 0.4.8),
109125 qtdeclarative5-ubuntu-telephony0.1,
110126 qtdeclarative5-ubuntu-web-plugin,
@@ -115,12 +131,14 @@ Depends: dmz-cursor-theme,
115131 unity8-private | unity-launcher-impl,
116132 ${misc:Depends},
117133 ${shlibs:Depends},
118−Recommends: indicator-session,
134+Recommends: indicator-keyboard,
135+ indicator-session,
119136 unity-scope-click,
120137 unity-scope-mediascanner2,
121138Breaks: indicator-network (<< 0.5.1+14.10.20141014),
122139 ubuntu-touch-session (<< 0.107),
123140 unity8-greeter (<< 7.89),
141+ ubuntu-keyboard (<< 0.100),
124142Replaces: ubuntu-touch-session (<< 0.82~),
125143 unity8-greeter (<< 7.89),
126144Conflicts: ubuntu-system-settings-wizard,
@@ -130,12 +148,12 @@ Description: Unity 8 shell
130148Package: unity8-common
131149Architecture: all
132150Depends: qml-module-qtquick-layouts,
151+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
152+ qml-module-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
133153 qtdeclarative5-ubuntu-settings-components (>= 0.7),
134− qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
135− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
136154 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
137155 ubuntu-thumbnailer-impl-0,
138− unity-application-impl-17,
156+ unity-application-impl-21,
139157 unity-notifications-impl-3,
140158 unity-plugin-scopes | unity-scopes-impl,
141159 unity-scopes-impl-12,
@@ -162,7 +180,7 @@ Depends: autopilot-qt5 (>= 1.4),
162180 python3-fixtures,
163181 python3-gi,
164182 qttestability-autopilot (>= 1.4),
165− ubuntu-ui-toolkit-autopilot (>= 1.3.1845),
183+ ubuntu-ui-toolkit-autopilot (>= 1.3.2030),
166184 unity-scope-click,
167185 unity8 (= ${source:Version}),
168186 unity8-fake-env (= ${source:Version}),
@@ -181,7 +199,7 @@ Pre-Depends: ${misc:Pre-Depends},
181199Depends: ${misc:Depends},
182200 ${shlibs:Depends},
183201Provides: unity-application-impl,
184− unity-application-impl-16,
202+ unity-application-impl-21,
185203Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
186204Description: Fake environment for running Unity 8 shell
187205 Provides fake implementations of some QML modules used by Unity 8 shell
@@ -191,7 +209,7 @@ Package: unity8-private
191209Architecture: any
192210Multi-Arch: same
193211Pre-Depends: ${misc:Pre-Depends},
194−Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
212+Depends: accountsservice-ubuntu-schemas (>= 0.0.7),
195213 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
196214 libhardware2,
197215 pay-service,
debian/rules+5−1
@@ -29,10 +29,14 @@ override_dh_install:
2929 cd $(CURDIR)
3030 dh_install -X'*.pyc' --fail-missing
3131
32+override_dh_installdeb:
33+ dh_apparmor --profile-name=usr.bin.unity8-dash -punity8-dash
34+ dh_installdeb
35+
3236# use private lib directories
3337override_dh_makeshlibs:
3438 dh_makeshlibs -Nunity8-private -Nunity8-fake-env
3539
36−# libMockLightDM-qml.so links against liblightdm-qt5-2.so which doesn't exist
40+# libMockLightDM-qml.so links against liblightdm-qt5-3.so which doesn't exist
3741override_dh_shlibdeps:
3842 dh_shlibdeps -XlibMockLightDM-qml.so
debian/unity8-greeter.installnew file+5
@@ -0,0 +1,5 @@
1+data/unity8-greeter-wrapper usr/bin/
2+data/unity8-greeter-init.conf usr/share/upstart/sessions/
3+data/unity8-greeter.pkla /var/lib/polkit-1/localauthority/10-vendor.d/
4+usr/share/lightdm/greeters/unity8-greeter.desktop
5+usr/share/lightdm/lightdm.conf.d/51-unity8-greeter.conf
debian/unity8-private.install+1−1
@@ -4,7 +4,7 @@ usr/lib/*/unity8/qml/Cursor
44usr/lib/*/unity8/qml/Dash
55usr/lib/*/unity8/qml/GlobalShortcut
66usr/lib/*/unity8/qml/Greeter
7−usr/lib/*/unity8/qml/IntegratedLightDM
7+usr/lib/*/unity8/qml/LightDM
88usr/lib/*/unity8/qml/Lights
99usr/lib/*/unity8/qml/Powerd
1010usr/lib/*/unity8/qml/ScreenshotDirectory
debian/unity8.install+1
@@ -1,3 +1,4 @@
1+debian/usr.bin.unity8-dash etc/apparmor.d
12var/lib/unity8/version
23data/unity8-dash.conf usr/share/upstart/sessions/
34data/unity8-filewatcher.conf usr/share/upstart/sessions/
debian/usr.bin.unity8-dashnew file+21
@@ -0,0 +1,21 @@
1+# vim:syntax=apparmor
2+
3+#include <tunables/global>
4+
5+# v2 compatible wildly permissive profile
6+profile unity8-dash /usr/bin/unity8-dash (attach_disconnected) {
7+ capability,
8+ network,
9+ / rwkl,
10+ /** rwlkm,
11+ /** pix,
12+
13+ mount,
14+ remount,
15+ umount,
16+ pivot_root,
17+ dbus,
18+ signal,
19+ ptrace,
20+ unix,
21+}
plugins/AccountsService/AccountsService.cpp+41−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -36,8 +36,10 @@
3636#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
3737#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
3838#define PROP_EMAIL QStringLiteral("Email")
39+#define PROP_ENABLE_FINGERPRINT_IDENTIFICATION QStringLiteral("EnableFingerprintIdentification")
3940#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
4041#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
42+#define PROP_FAILED_FINGERPRINT_LOGINS QStringLiteral("FailedFingerprintLogins")
4143#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
4244#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
4345#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
@@ -66,9 +68,9 @@ Q_DECLARE_METATYPE(StringMapList)
6668QVariant primaryButtonConverter(const QVariant &value)
6769{
6870 QString stringValue = value.toString();
69− if (stringValue == "left") {
71+ if (stringValue == QLatin1String("left")) {
7072 return QVariant::fromValue(0);
71− } else if (stringValue == "right") {
73+ } else if (stringValue == QLatin1String("right")) {
7274 return QVariant::fromValue(1); // Mir is less clear on this -- any non-zero value is the same
7375 } else {
7476 return QVariant::fromValue(0); // default to left
@@ -93,12 +95,14 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
9395 registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
9496 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
9597 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
98+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_FINGERPRINT_IDENTIFICATION, QStringLiteral("enableFingerprintIdentificationChanged"));
9699 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
97100 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED, QStringLiteral("enableIndicatorsWhileLockedChanged"));
98101 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
99102 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
100103 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
101104 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
105+ registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS, QStringLiteral("failedFingerprintLoginsChanged"));
102106 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
103107
104108 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
@@ -176,6 +180,12 @@ void AccountsService::markDemoEdgeCompleted(const QString &edge)
176180 }
177181}
178182
183+bool AccountsService::enableFingerprintIdentification() const
184+{
185+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_FINGERPRINT_IDENTIFICATION);
186+ return value.toBool();
187+}
188+
179189bool AccountsService::enableLauncherWhileLocked() const
180190{
181191 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
@@ -274,6 +284,34 @@ QStringList AccountsService::keymaps() const
274284 return {QStringLiteral("us")};
275285}
276286
287+void AccountsService::setKeymaps(const QStringList &keymaps)
288+{
289+ if (keymaps.isEmpty()) {
290+ qWarning() << "Setting empty keymaps is not supported";
291+ return;
292+ }
293+
294+ StringMapList result;
295+ Q_FOREACH(const QString &keymap, keymaps) {
296+ StringMap map;
297+ map.insert(QStringLiteral("xkb"), keymap);
298+ result.append(map);
299+ }
300+
301+ setProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QVariant::fromValue(result));
302+ Q_EMIT keymapsChanged();
303+}
304+
305+uint AccountsService::failedFingerprintLogins() const
306+{
307+ return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS).toUInt();
308+}
309+
310+void AccountsService::setFailedFingerprintLogins(uint failedFingerprintLogins)
311+{
312+ setProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS, failedFingerprintLogins);
313+}
314+
277315uint AccountsService::failedLogins() const
278316{
279317 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
plugins/AccountsService/AccountsService.h+15−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -41,6 +41,9 @@ class AccountsService: public QObject
4141 Q_PROPERTY (QStringList demoEdgesCompleted
4242 READ demoEdgesCompleted
4343 NOTIFY demoEdgesCompletedChanged)
44+ Q_PROPERTY (bool enableFingerprintIdentification
45+ READ enableFingerprintIdentification
46+ NOTIFY enableFingerprintIdentificationChanged)
4447 Q_PROPERTY (bool enableLauncherWhileLocked
4548 READ enableLauncherWhileLocked
4649 NOTIFY enableLauncherWhileLockedChanged)
@@ -60,6 +63,10 @@ class AccountsService: public QObject
6063 READ failedLogins
6164 WRITE setFailedLogins
6265 NOTIFY failedLoginsChanged)
66+ Q_PROPERTY (uint failedFingerprintLogins
67+ READ failedFingerprintLogins
68+ WRITE setFailedFingerprintLogins
69+ NOTIFY failedFingerprintLoginsChanged)
6370 Q_PROPERTY(bool hereEnabled
6471 READ hereEnabled
6572 WRITE setHereEnabled
@@ -72,9 +79,7 @@ class AccountsService: public QObject
7279 NOTIFY hereLicensePathChanged)
7380 Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
7481 Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged)
75− Q_PROPERTY(QStringList keymaps
76− READ keymaps
77− NOTIFY keymapsChanged)
82+ Q_PROPERTY(QStringList keymaps READ keymaps WRITE setKeymaps NOTIFY keymapsChanged)
7883
7984public:
8085 enum PasswordDisplayHint {
@@ -91,6 +96,7 @@ public:
9196 void setDemoEdges(bool demoEdges);
9297 QStringList demoEdgesCompleted() const;
9398 Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
99+ bool enableFingerprintIdentification() const;
94100 bool enableLauncherWhileLocked() const;
95101 bool enableIndicatorsWhileLocked() const;
96102 QString backgroundFile() const;
@@ -98,6 +104,8 @@ public:
98104 PasswordDisplayHint passwordDisplayHint() const;
99105 uint failedLogins() const;
100106 void setFailedLogins(uint failedLogins);
107+ uint failedFingerprintLogins() const;
108+ void setFailedFingerprintLogins(uint failedFingerprintLogins);
101109 bool hereEnabled() const;
102110 void setHereEnabled(bool enabled);
103111 QString hereLicensePath() const;
@@ -107,17 +115,20 @@ public:
107115 QString email() const;
108116 void setEmail(const QString &email);
109117 QStringList keymaps() const;
118+ void setKeymaps(const QStringList &keymaps);
110119
111120Q_SIGNALS:
112121 void userChanged();
113122 void demoEdgesChanged();
114123 void demoEdgesCompletedChanged();
124+ void enableFingerprintIdentificationChanged();
115125 void enableLauncherWhileLockedChanged();
116126 void enableIndicatorsWhileLockedChanged();
117127 void backgroundFileChanged();
118128 void statsWelcomeScreenChanged();
119129 void passwordDisplayHintChanged();
120130 void failedLoginsChanged();
131+ void failedFingerprintLoginsChanged();
121132 void hereEnabledChanged();
122133 void hereLicensePathChanged();
123134 void realNameChanged();
plugins/AccountsService/AccountsService.qmltypesdeleted−41
@@ -1,41 +0,0 @@
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− Enum {
18− name: "PasswordDisplayHint"
19− values: {
20− "Keyboard": 0,
21− "Numeric": 1
22− }
23− }
24− Property { name: "user"; type: "string" }
25− Property { name: "demoEdges"; type: "bool" }
26− Property { name: "demoEdgesCompleted"; type: "QStringList"; isReadonly: true }
27− Property { name: "enableLauncherWhileLocked"; type: "bool"; isReadonly: true }
28− Property { name: "enableIndicatorsWhileLocked"; type: "bool"; isReadonly: true }
29− Property { name: "backgroundFile"; type: "string"; isReadonly: true }
30− Property { name: "statsWelcomeScreen"; type: "bool"; isReadonly: true }
31− Property { name: "passwordDisplayHint"; type: "PasswordDisplayHint"; isReadonly: true }
32− Property { name: "failedLogins"; type: "uint" }
33− Property { name: "hereEnabled"; type: "bool" }
34− Property { name: "hereLicensePath"; type: "string"; isReadonly: true }
35− Property { name: "hereLicensePathValid"; type: "bool"; isReadonly: true }
36− Method {
37− name: "markDemoEdgeCompleted"
38− Parameter { name: "edge"; type: "string" }
39− }
40− }
41−}
plugins/AccountsService/com.canonical.unity.AccountsService.xml+4
@@ -47,5 +47,9 @@
4747 <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
4848 </property>
4949
50+ <property name="FailedFingerprintLogins" type="u" access="readwrite">
51+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
52+ </property>
53+
5054 </interface>
5155</node>
plugins/CMakeLists.txt+1−1
@@ -15,7 +15,7 @@ add_subdirectory(AccountsService)
1515add_subdirectory(Cursor)
1616add_subdirectory(GlobalShortcut)
1717add_subdirectory(Greeter)
18−add_subdirectory(IntegratedLightDM)
18+add_subdirectory(LightDM)
1919add_subdirectory(Lights)
2020add_subdirectory(Dash)
2121add_subdirectory(Powerd)
plugins/Cursor/CMakeLists.txt+4
@@ -3,6 +3,10 @@ add_subdirectory(3rd_party)
33include_directories(
44 ${CMAKE_CURRENT_SOURCE_DIR}
55 ${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/xcursor
6+)
7+
8+include_directories(
9+ SYSTEM
610 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
711)
812
plugins/Cursor/Cursor.qml+29−11
@@ -16,6 +16,7 @@
1616
1717import QtQuick 2.4
1818import Cursor 1.1
19+import Powerd 0.1
1920
2021MousePointer {
2122 id: mousePointer
@@ -24,21 +25,38 @@ MousePointer {
2425 id: imageInfo
2526 themeName: mousePointer.themeName
2627 cursorName: mousePointer.cursorName
28+ cursorHeight: mousePointer.height
2729 }
2830
29− AnimatedSprite {
30− x: -imageInfo.hotspot.x
31− y: -imageInfo.hotspot.y
32− source: "image://cursor/" + mousePointer.themeName + "/" + mousePointer.cursorName
31+ Loader {
32+ active: mousePointer.visible && imageInfo.frameCount > 1
33+ sourceComponent: AnimatedSprite {
34+ x: -imageInfo.hotspot.x
35+ y: -imageInfo.hotspot.y
36+ source: imageInfo.imageSource
3337
34− interpolate: false
38+ interpolate: false
3539
36− width: imageInfo.frameWidth
37− height: imageInfo.frameHeight
40+ width: imageInfo.frameWidth
41+ height: imageInfo.frameHeight
3842
39− frameCount: imageInfo.frameCount
40− frameDuration: imageInfo.frameDuration
41− frameWidth: imageInfo.frameWidth
42− frameHeight: imageInfo.frameHeight
43+ frameCount: imageInfo.frameCount
44+ frameDuration: imageInfo.frameDuration
45+ frameWidth: imageInfo.frameWidth
46+ frameHeight: imageInfo.frameHeight
47+
48+ running: Powerd.status === Powerd.On
49+ }
50+ }
51+
52+ Loader {
53+ active: mousePointer.visible && imageInfo.frameCount === 1
54+ sourceComponent: Image {
55+ x: -imageInfo.hotspot.x
56+ y: -imageInfo.hotspot.y
57+ source: imageInfo.imageSource
58+ width: sourceSize.width
59+ height: sourceSize.height
60+ }
4361 }
4462}
plugins/Cursor/CursorImageInfo.cpp+23−13
@@ -19,17 +19,23 @@
1919CursorImageInfo::CursorImageInfo(QObject *parent)
2020 : QObject(parent)
2121{
22− m_updateTimer.setInterval(0);
23− m_updateTimer.setSingleShot(true);
24− connect(&m_updateTimer, &QTimer::timeout, this, &CursorImageInfo::update);
2522}
2623
2724void CursorImageInfo::setCursorName(const QString &cursorName)
2825{
2926 if (cursorName != m_cursorName) {
3027 m_cursorName = cursorName;
28+ update();
3129 Q_EMIT cursorNameChanged();
32− scheduleUpdate();
30+ }
31+
32+}
33+void CursorImageInfo::setCursorHeight(qreal cursorHeight)
34+{
35+ if (cursorHeight != m_cursorHeight) {
36+ m_cursorHeight = cursorHeight;
37+ update();
38+ Q_EMIT cursorHeightChanged();
3339 }
3440}
3541
@@ -37,27 +43,21 @@ void CursorImageInfo::setThemeName(const QString &themeName)
3743{
3844 if (m_themeName != themeName) {
3945 m_themeName = themeName;
46+ update();
4047 Q_EMIT themeNameChanged();
41− scheduleUpdate();
42− }
43−}
44−
45−void CursorImageInfo::scheduleUpdate()
46−{
47− if (!m_updateTimer.isActive()) {
48− m_updateTimer.start();
4948 }
5049}
5150
5251void CursorImageInfo::update()
5352{
54− m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName);
53+ m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName, (int) m_cursorHeight);
5554
5655 Q_EMIT hotspotChanged();
5756 Q_EMIT frameWidthChanged();
5857 Q_EMIT frameHeightChanged();
5958 Q_EMIT frameCountChanged();
6059 Q_EMIT frameDurationChanged();
60+ Q_EMIT imageSourceChanged();
6161}
6262
6363QPoint CursorImageInfo::hotspot() const
@@ -104,3 +104,13 @@ int CursorImageInfo::frameDuration() const
104104 return 0;
105105 }
106106}
107+
108+QUrl CursorImageInfo::imageSource() const
109+{
110+ auto urlString = QString("image://cursor/%1/%2/%3")
111+ .arg(m_themeName)
112+ .arg(m_cursorName)
113+ .arg(m_cursorHeight);
114+
115+ return QUrl(urlString);
116+}
plugins/Cursor/CursorImageInfo.h+10−4
@@ -21,7 +21,7 @@
2121
2222#include <QObject>
2323#include <QString>
24−#include <QTimer>
24+#include <QUrl>
2525
2626class CursorImageInfo : public QObject
2727{
@@ -29,12 +29,14 @@ class CursorImageInfo : public QObject
2929
3030 Q_PROPERTY(QString themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
3131 Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
32+ Q_PROPERTY(qreal cursorHeight READ cursorHeight WRITE setCursorHeight NOTIFY cursorHeightChanged)
3233
3334 Q_PROPERTY(QPoint hotspot READ hotspot NOTIFY hotspotChanged)
3435 Q_PROPERTY(qreal frameWidth READ frameWidth NOTIFY frameWidthChanged)
3536 Q_PROPERTY(qreal frameHeight READ frameHeight NOTIFY frameHeightChanged)
3637 Q_PROPERTY(int frameCount READ frameCount NOTIFY frameCountChanged)
3738 Q_PROPERTY(int frameDuration READ frameDuration NOTIFY frameDurationChanged)
39+ Q_PROPERTY(QUrl imageSource READ imageSource NOTIFY imageSourceChanged)
3840
3941public:
4042 CursorImageInfo(QObject *parent = nullptr);
@@ -45,30 +47,34 @@ public:
4547 QString cursorName() const { return m_cursorName; }
4648 void setCursorName(const QString &);
4749
50+ qreal cursorHeight() const { return m_cursorHeight; }
51+ void setCursorHeight(qreal);
52+
4853 QPoint hotspot() const;
4954 qreal frameWidth() const;
5055 qreal frameHeight() const;
5156 int frameCount() const;
5257 int frameDuration() const;
58+ QUrl imageSource() const;
5359
5460Q_SIGNALS:
5561 void themeNameChanged();
5662 void cursorNameChanged();
63+ void cursorHeightChanged();
5764 void hotspotChanged();
5865 void frameWidthChanged();
5966 void frameHeightChanged();
6067 void frameCountChanged();
6168 void frameDurationChanged();
69+ void imageSourceChanged();
6270
6371private Q_SLOTS:
6472 void update();
6573
6674private:
67− void scheduleUpdate();
68− QTimer m_updateTimer;
69−
7075 QString m_themeName;
7176 QString m_cursorName;
77+ qreal m_cursorHeight{0};
7278
7379 CursorImage *m_cursorImage{nullptr};
7480};
plugins/Cursor/CursorImageProvider.cpp+34−22
@@ -27,7 +27,7 @@ CursorImageProvider *CursorImageProvider::m_instance = nullptr;
2727/////
2828// BuiltInCursorImage
2929
30−BuiltInCursorImage::BuiltInCursorImage()
30+BuiltInCursorImage::BuiltInCursorImage(int cursorHeight)
3131{
3232 const char *svgString =
3333 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"
@@ -42,12 +42,14 @@ BuiltInCursorImage::BuiltInCursorImage()
4242 " d=\"M 20.504,50.94931 460.42533,518.14486 266.47603,515.61948 366.48114,719.16522 274.05218,770.68296 172.53185,559.56112 20.504,716.13476 Z\" />"
4343 "</svg>";
4444
45− qimage = QImage(20, 32, QImage::Format_ARGB32);
45+ // NB: Original image dimension is 20x32. Ensure aspect ratio is kept
46+ qimage = QImage((20./32.)*cursorHeight, cursorHeight, QImage::Format_ARGB32);
4647 qimage.fill(Qt::transparent);
4748 QPainter imagePainter(&qimage);
4849
4950 frameWidth = qimage.width();
5051 frameHeight = qimage.height();
52+ requestedHeight = cursorHeight;
5153
5254 QSvgRenderer *svgRenderer = new QSvgRenderer(QByteArray(svgString));
5355 svgRenderer->render(&imagePainter);
@@ -81,11 +83,9 @@ CustomCursorImage::CustomCursorImage(const QCursor &cursor)
8183/////
8284// XCursorImage
8385
84−XCursorImage::XCursorImage(const QString &theme, const QString &file)
86+XCursorImage::XCursorImage(const QString &theme, const QString &file, int preferredCursorHeightPx)
8587{
86− // TODO: Consider grid unit value
87− // Hardcoding to a medium size for now
88− int preferredCursorHeightPx = 32;
88+ requestedHeight = preferredCursorHeightPx;
8989
9090 XcursorImages *xcursorImages = XcursorLibraryLoadImages(QFile::encodeName(file), QFile::encodeName(theme),
9191 preferredCursorHeightPx);
@@ -96,7 +96,7 @@ XCursorImage::XCursorImage(const QString &theme, const QString &file)
9696 frameCount = xcursorImages->nimage;
9797
9898 for (int i = 0; i < xcursorImages->nimage; ++i) {
99− XcursorImage *xcursorImage = xcursorImages->images[0];
99+ XcursorImage *xcursorImage = xcursorImages->images[i];
100100 if (frameWidth < (int)xcursorImage->width) {
101101 frameWidth = xcursorImage->width;
102102 }
@@ -235,34 +235,43 @@ CursorImageProvider::~CursorImageProvider()
235235 m_instance = nullptr;
236236}
237237
238−QImage CursorImageProvider::requestImage(const QString &cursorThemeAndName, QSize *size, const QSize & /*requestedSize*/)
238+QImage CursorImageProvider::requestImage(const QString &cursorThemeAndNameAndHeight, QSize *size, const QSize & /*requestedSize*/)
239239{
240− CursorImage *cursorImage = fetchCursor(cursorThemeAndName);
240+ CursorImage *cursorImage = fetchCursor(cursorThemeAndNameAndHeight);
241241 size->setWidth(cursorImage->qimage.width());
242242 size->setHeight(cursorImage->qimage.height());
243243
244244 return cursorImage->qimage;
245245}
246246
247−CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndName)
247+CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndNameAndHeight)
248248{
249249 QString themeName;
250250 QString cursorName;
251+ int cursorHeight;
251252 {
252− QStringList themeAndNameList = cursorThemeAndName.split('/');
253− if (themeAndNameList.size() != 2) {
253+ QStringList themeAndNameList = cursorThemeAndNameAndHeight.split('/');
254+ if (themeAndNameList.size() != 3) {
254255 return nullptr;
255256 }
256257 themeName = themeAndNameList[0];
257258 cursorName = themeAndNameList[1];
259+
260+ bool ok;
261+ cursorHeight = themeAndNameList[2].toInt(&ok);
262+ if (!ok) {
263+ cursorHeight = 32;
264+ qWarning().nospace() << "CursorImageProvider: invalid cursor height ("<<themeAndNameList[2]<<")."
265+ " Falling back to "<<cursorHeight<<" pixels";
266+ }
258267 }
259268
260− return fetchCursor(themeName, cursorName);
269+ return fetchCursor(themeName, cursorName, cursorHeight);
261270}
262271
263−CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QString &cursorName)
272+CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QString &cursorName, int cursorHeight)
264273{
265− CursorImage *cursorImage = fetchCursorHelper(themeName, cursorName);
274+ CursorImage *cursorImage = fetchCursorHelper(themeName, cursorName, cursorHeight);
266275
267276 // Try some fallbacks
268277 if (cursorImage->qimage.isNull()) {
@@ -271,7 +280,7 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
271280 int i = 0;
272281 while (cursorImage->qimage.isNull() && i < fallbackNames.count()) {
273282 qDebug().nospace() << "CursorImageProvider: "<< cursorName <<" not found, trying " << fallbackNames.at(i);
274− cursorImage = fetchCursorHelper(themeName, fallbackNames.at(i));
283+ cursorImage = fetchCursorHelper(themeName, fallbackNames.at(i), cursorHeight);
275284 ++i;
276285 }
277286 }
@@ -281,14 +290,14 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
281290 if (cursorImage->qimage.isNull() && cursorName != QLatin1String("left_ptr")) {
282291 qDebug() << "CursorImageProvider:" << cursorName
283292 << "not found (nor its fallbacks, if any). Going for \"left_ptr\" as a last resort.";
284− cursorImage = fetchCursorHelper(themeName, QStringLiteral("left_ptr"));
293+ cursorImage = fetchCursorHelper(themeName, QStringLiteral("left_ptr"), cursorHeight);
285294 }
286295
287296 if (cursorImage->qimage.isNull()) {
288297 // finally, go for the built-in cursor
289298 qWarning() << "CursorImageProvider: couldn't find any cursors. Using the built-in one";
290− if (!m_builtInCursorImage) {
291− m_builtInCursorImage.reset(new BuiltInCursorImage);
299+ if (!m_builtInCursorImage || m_builtInCursorImage->requestedHeight != cursorHeight) {
300+ m_builtInCursorImage.reset(new BuiltInCursorImage(cursorHeight));
292301 }
293302 cursorImage = m_builtInCursorImage.data();
294303 }
@@ -296,17 +305,20 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
296305 return cursorImage;
297306}
298307
299−CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, const QString &cursorName)
308+CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, const QString &cursorName, int cursorHeight)
300309{
301310 if (cursorName == QLatin1String("blank")) {
302311 return &m_blankCursorImage;
303− } else if (cursorName == QLatin1String("custom")) {
312+ } else if (cursorName.startsWith(QLatin1String("custom"))) {
304313 return m_customCursorImage.data();
305314 } else {
306315 QMap<QString, CursorImage*> &themeCursors = m_cursors[themeName];
307316
308317 if (!themeCursors.contains(cursorName)) {
309− themeCursors[cursorName] = new XCursorImage(themeName, cursorName);
318+ themeCursors[cursorName] = new XCursorImage(themeName, cursorName, cursorHeight);
319+ } else if (themeCursors[cursorName]->requestedHeight != cursorHeight) {
320+ delete themeCursors.take(cursorName);
321+ themeCursors[cursorName] = new XCursorImage(themeName, cursorName, cursorHeight);
310322 }
311323
312324 return themeCursors[cursorName];
plugins/Cursor/CursorImageProvider.h+9−6
@@ -42,17 +42,20 @@ public:
4242 int frameHeight{0};
4343 int frameCount{1};
4444 int frameDuration{40};
45+
46+ // Requested height when creating this cursor.
47+ int requestedHeight{0};
4548};
4649
4750class XCursorImage : public CursorImage {
4851public:
49− XCursorImage(const QString &theme, const QString &file);
52+ XCursorImage(const QString &theme, const QString &file, int preferredCursorHeightPx);
5053 virtual ~XCursorImage();
5154};
5255
5356class BuiltInCursorImage : public CursorImage {
5457public:
55− BuiltInCursorImage();
58+ BuiltInCursorImage(int cursorHeight);
5659};
5760
5861class BlankCursorImage : public CursorImage {
@@ -74,15 +77,15 @@ public:
7477 static CursorImageProvider *instance() { return m_instance; }
7578
7679
77− QImage requestImage(const QString &cursorName, QSize *size, const QSize &requestedSize) override;
80+ QImage requestImage(const QString &cursorThemeAndNameAndHeight, QSize *size, const QSize &requestedSize) override;
7881
79− CursorImage *fetchCursor(const QString &themeName, const QString &cursorName);
82+ CursorImage *fetchCursor(const QString &themeName, const QString &cursorName, int cursorHeight);
8083
8184 void setCustomCursor(const QCursor &customCursor);
8285
8386private:
84− CursorImage *fetchCursor(const QString &cursorThemeAndName);
85− CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName);
87+ CursorImage *fetchCursor(const QString &cursorThemeAndNameAndHeight);
88+ CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName, int cursorHeight);
8689
8790 // themeName -> (cursorName -> cursorImage)
8891 // TODO: discard old, unused, cursors
plugins/Cursor/MousePointer.cpp+13−8
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it under
55 * the terms of the GNU Lesser General Public License version 3, as published by
@@ -43,21 +43,26 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
4343 Q_EMIT mouseMoved();
4444 }
4545
46− qreal newX = x() + movement.x();
46+ m_accumulatedMovement += movement;
47+ // don't apply the fractional part
48+ QPointF appliedMovement(int(m_accumulatedMovement.x()), int(m_accumulatedMovement.y()));
49+ m_accumulatedMovement -= appliedMovement;
50+
51+ qreal newX = x() + appliedMovement.x();
4752 if (newX < 0) {
4853 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
4954 newX = 0;
50− } else if (newX > parentItem()->width()) {
51− Q_EMIT pushedRightBoundary(newX - parentItem()->width(), buttons);
52− newX = parentItem()->width();
55+ } else if (newX >= parentItem()->width()) {
56+ Q_EMIT pushedRightBoundary(newX - (parentItem()->width() - 1), buttons);
57+ newX = parentItem()->width() - 1;
5358 }
5459 setX(newX);
5560
56− qreal newY = y() + movement.y();
61+ qreal newY = y() + appliedMovement.y();
5762 if (newY < 0) {
5863 newY = 0;
59− } else if (newY > parentItem()->height()) {
60− newY = parentItem()->height();
64+ } else if (newY >= parentItem()->height()) {
65+ newY = parentItem()->height() - 1;
6166 }
6267 setY(newY);
6368
plugins/Cursor/MousePointer.h+4−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it under
55 * the terms of the GNU Lesser General Public License version 3, as published by
@@ -61,6 +61,9 @@ private:
6161 QPointer<QScreen> m_registeredScreen;
6262 QString m_cursorName;
6363 QString m_themeName;
64+
65+ // Accumulated, unapplied, mouse movement.
66+ QPointF m_accumulatedMovement;
6467};
6568
6669#endif // MOUSEPOINTER_H
plugins/Dash/CMakeLists.txt+4
@@ -10,6 +10,10 @@ endif()
1010include_directories(
1111 ${CMAKE_CURRENT_SOURCE_DIR}
1212 ${CMAKE_CURRENT_BINARY_DIR}
13+)
14+
15+include_directories(
16+ SYSTEM
1317 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
1418 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
1519 ${Qt5V8_PRIVATE_INCLUDE_DIR}
plugins/Dash/CardCreator.js+146−115
@@ -25,7 +25,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
2525 objectName: "backgroundLoader"; \n\
2626 anchors.fill: parent; \n\
2727 asynchronous: %3; \n\
28− visible: status == Loader.Ready; \n\
28+ visible: status === Loader.Ready; \n\
2929 sourceComponent: UbuntuShape { \n\
3030 objectName: "background"; \n\
3131 radius: "medium"; \n\
@@ -69,62 +69,86 @@ var kArtUbuntuShapeCode = 'UbuntuShape { \n\
6969 }';
7070
7171var kArtProportionalShapeCode = 'ProportionalShape { \n\
72− anchors.fill: parent; \n\
72+ anchors.left: parent.left; \n\
73+ anchors.right: parent.right; \n\
7374 source: artImage; \n\
7475 aspect: UbuntuShape.DropShadow; \n\
7576 }';
7677
77−// %1 is used as anchors of artShapeHolder
78+// %1 is used as anchors of artShapeLoader
7879// %2 is used as image width
7980// %3 is used as image height
8081// %4 is whether the image should be visible
81−// %5 is used as aspect ratio fallback
82−// %6 is whether the loader should be asynchronous or not
83−// %7 is the shape code we want to use
84−// %8 is injected as code to artImage
85−// %9 is used as image fallback
86−var kArtShapeHolderCode = 'Item { \n\
87− id: artShapeHolder; \n\
88− height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
89− width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width; \n\
82+// %5 is whether the loader should be asynchronous or not
83+// %6 is the shape code we want to use
84+// %7 is injected as code to artImage
85+// %8 is used as image fallback
86+var kArtShapeHolderCode = 'Loader { \n\
87+ id: artShapeLoader; \n\
88+ height: root.fixedArtShapeSize.height; \n\
89+ width: root.fixedArtShapeSize.width; \n\
9090 anchors { %1 } \n\
91− Loader { \n\
92− id: artShapeLoader; \n\
93− objectName: "artShapeLoader"; \n\
94− readonly property string cardArt: cardData && cardData["art"] || %9; \n\
95− onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
96− active: cardArt != ""; \n\
97− asynchronous: %6; \n\
98− visible: status == Loader.Ready; \n\
99− sourceComponent: Item { \n\
100− id: artShape; \n\
101− objectName: "artShape"; \n\
102− visible: image.status == Image.Ready; \n\
103− readonly property alias image: artImage; \n\
91+ objectName: "artShapeLoader"; \n\
92+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
93+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
94+ active: cardArt != ""; \n\
95+ asynchronous: %5; \n\
96+ visible: status === Loader.Ready; \n\
97+ sourceComponent: Item { \n\
98+ id: artShape; \n\
99+ objectName: "artShape"; \n\
100+ visible: image.status === Image.Ready; \n\
101+ readonly property alias image: artImage; \n\
102+ %6 \n\
103+ width: root.fixedArtShapeSize.width; \n\
104+ height: root.fixedArtShapeSize.height; \n\
105+ CroppedImageMinimumSourceSize { \n\
106+ id: artImage; \n\
107+ objectName: "artImage"; \n\
108+ source: artShapeLoader.cardArt; \n\
109+ asynchronous: %5; \n\
110+ visible: %4; \n\
111+ width: %2; \n\
112+ height: %3; \n\
113+ %7 \n\
114+ } \n\
115+ } \n\
116+ }\n';
117+
118+// %1 is used as anchors of artShapeLoader
119+// %2 is used as image width
120+// %3 is used as image height
121+// %4 is whether the image should be visible
122+// %5 is whether the loader should be asynchronous or not
123+// %6 is the shape code we want to use
124+// %7 is injected as code to artImage
125+// %8 is used as image fallback
126+var kArtShapeHolderCodeCardToolCard = 'Loader { \n\
127+ id: artShapeLoader; \n\
128+ anchors { %1 } \n\
129+ objectName: "artShapeLoader"; \n\
130+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
131+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
132+ active: cardArt != ""; \n\
133+ asynchronous: %5; \n\
134+ visible: status === Loader.Ready; \n\
135+ sourceComponent: Item { \n\
136+ id: artShape; \n\
137+ objectName: "artShape"; \n\
138+ visible: image.status === Image.Ready; \n\
139+ readonly property alias image: artImage; \n\
140+ %6 \n\
141+ width: image.status !== Image.Ready ? 0 : image.width; \n\
142+ height: image.status !== Image.Ready ? 0 : image.height; \n\
143+ CroppedImageMinimumSourceSize { \n\
144+ id: artImage; \n\
145+ objectName: "artImage"; \n\
146+ source: artShapeLoader.cardArt; \n\
147+ asynchronous: %5; \n\
148+ visible: %4; \n\
149+ width: %2; \n\
150+ height: %3; \n\
104151 %7 \n\
105− readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1; \n\
106− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : %5; \n\
107− Component.onCompleted: { updateWidthHeightBindings(); } \n\
108− Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); } \n\
109− function updateWidthHeightBindings() { \n\
110− if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) { \n\
111− width = root.fixedArtShapeSize.width; \n\
112− height = root.fixedArtShapeSize.height; \n\
113− } else { \n\
114− width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width }); \n\
115− height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
116− } \n\
117− } \n\
118− CroppedImageMinimumSourceSize { \n\
119− id: artImage; \n\
120− objectName: "artImage"; \n\
121− source: artShapeLoader.cardArt; \n\
122− asynchronous: %6; \n\
123− visible: %4; \n\
124− width: %2; \n\
125− height: %3; \n\
126− %8 \n\
127− } \n\
128152 } \n\
129153 } \n\
130154 }\n';
@@ -182,10 +206,10 @@ var kAudioButtonCode = 'AbstractButton { \n\
182206var kOverlayLoaderCode = 'Loader { \n\
183207 id: overlayLoader; \n\
184208 readonly property real overlayHeight: %2 + units.gu(2); \n\
185− anchors.fill: artShapeHolder; \n\
209+ anchors.fill: artShapeLoader; \n\
186210 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
187211 asynchronous: %1; \n\
188− visible: showHeader && status == Loader.Ready; \n\
212+ visible: showHeader && status === Loader.Ready; \n\
189213 sourceComponent: UbuntuShapeOverlay { \n\
190214 id: overlay; \n\
191215 property real luminance: Style.luminance(overlayColor); \n\
@@ -242,7 +266,7 @@ var kMascotShapeLoaderCode = 'Loader { \n\
242266 objectName: "mascotShapeLoader"; \n\
243267 asynchronous: %2; \n\
244268 active: mascotImage.status === Image.Ready; \n\
245− visible: showHeader && active && status == Loader.Ready; \n\
269+ visible: showHeader && active && status === Loader.Ready; \n\
246270 width: units.gu(6); \n\
247271 height: units.gu(5.625); \n\
248272 sourceComponent: UbuntuShape { image: mascotImage } \n\
@@ -405,7 +429,7 @@ function sanitizeColor(colorString) {
405429 return colorString;
406430}
407431
408−function cardString(template, components, isCardTool, artShapeStyle) {
432+function cardString(template, components, isCardTool, artShapeStyle, categoryLayout) {
409433 var code;
410434
411435 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -416,15 +440,16 @@ function cardString(template, components, isCardTool, artShapeStyle) {
416440 property string backgroundShapeStyle: "inset"; \n\
417441 property real fontScale: 1.0; \n\
418442 property var scopeStyle: null; \n\
419− %2\
420− property size fixedArtShapeSize: Qt.size(-1, -1); \n\
421443 readonly property string title: cardData && cardData["title"] || ""; \n\
422444 property bool showHeader: true; \n\
423445 implicitWidth: childrenRect.width; \n\
424446 enabled: %1; \n\
425447 \n'.arg(templateInteractive);
426448
427− code = code.arg(isCardTool ? "" : "property int fixedHeaderHeight: -1; \n");
449+ if (!isCardTool) {
450+ code += "property int fixedHeaderHeight: -1; \n\
451+ property size fixedArtShapeSize: Qt.size(-1, -1); \n";
452+ }
428453
429454 var hasArt = components["art"] && components["art"]["field"] || false;
430455 var hasSummary = components["summary"] || false;
@@ -483,37 +508,43 @@ function cardString(template, components, isCardTool, artShapeStyle) {
483508 if (hasArt) {
484509 code += 'readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);\n';
485510
511+ var artShapeAspect;
512+ if (isCardTool) {
513+ var artShapeAspect = components["art"] && components["art"]["aspect-ratio"] || 1;
514+ if (isNaN(artShapeAspect)) {
515+ artShapeAspect = 1;
516+ }
517+ } else {
518+ artShapeAspect = "(root.fixedArtShapeSize.width / root.fixedArtShapeSize.height)";
519+ }
520+
486521 var widthCode, heightCode;
487522 var artAnchors;
488523 if (isHorizontal) {
489524 artAnchors = 'left: parent.left';
490525 if (hasMascot || hasTitle) {
491− widthCode = 'height * artShape.aspect'
526+ widthCode = 'height * ' + artShapeAspect;
492527 heightCode = 'headerHeight + 2 * units.gu(1)';
493528 } else {
494529 // This side of the else is a bit silly, who wants an horizontal layout without mascot and title?
495530 // So we define a "random" height of the image height + 2 gu for the margins
496− widthCode = 'height * artShape.aspect'
531+ widthCode = 'height * ' + artShapeAspect
497532 heightCode = 'units.gu(7.625)';
498533 }
499534 } else {
500535 artAnchors = 'horizontalCenter: parent.horizontalCenter;';
501536 widthCode = 'root.width'
502− heightCode = 'width / artShape.aspect';
537+ heightCode = 'width / ' + artShapeAspect;
503538 }
504539
505− var aspectRatio = components["art"] && components["art"]["aspect-ratio"] || 1;
506− if (isNaN(aspectRatio)) {
507− aspectRatio = 1;
508− }
509540 var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
510541 fallback = encodeURI(fallback);
511542 var fallbackStatusCode = "";
512543 var fallbackURICode = '""';
513544 if (fallback !== "") {
514− // fallbackStatusCode has %9 in it because we want to substitute it for fallbackURICode
515− // which in kArtShapeHolderCode is %9
516− fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %9;';
545+ // fallbackStatusCode has %8 in it because we want to substitute it for fallbackURICode
546+ // which in kArtShapeHolderCode is %8
547+ fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %8;';
517548 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
518549 }
519550 var artShapeHolderShapeCode;
@@ -533,15 +564,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
533564 } else {
534565 artShapeHolderShapeCode = "";
535566 }
536− code += kArtShapeHolderCode.arg(artAnchors)
537− .arg(widthCode)
538− .arg(heightCode)
539− .arg(isConciergeMode ? "true" : "false")
540− .arg(aspectRatio)
541− .arg(asynchronous)
542− .arg(artShapeHolderShapeCode)
543− .arg(fallbackStatusCode)
544− .arg(fallbackURICode);
567+ var artShapeHolderCode = isCardTool ? kArtShapeHolderCodeCardToolCard : kArtShapeHolderCode;
568+ code += artShapeHolderCode.arg(artAnchors)
569+ .arg(widthCode)
570+ .arg(heightCode)
571+ .arg(isConciergeMode ? "true" : "false")
572+ .arg(asynchronous)
573+ .arg(artShapeHolderShapeCode)
574+ .arg(fallbackStatusCode)
575+ .arg(fallbackURICode);
545576 } else {
546577 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
547578 }
@@ -553,15 +584,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
553584
554585 var headerVerticalAnchors;
555586 if (headerAsOverlay) {
556− headerVerticalAnchors = 'bottom: artShapeHolder.bottom; \n\
587+ headerVerticalAnchors = 'bottom: artShapeLoader.bottom; \n\
557588 bottomMargin: units.gu(1);\n';
558589 } else {
559590 if (hasArt) {
560591 if (isHorizontal) {
561− headerVerticalAnchors = 'top: artShapeHolder.top; \n\
592+ headerVerticalAnchors = 'top: artShapeLoader.top; \n\
562593 topMargin: units.gu(1);\n';
563594 } else {
564− headerVerticalAnchors = 'top: artShapeHolder.bottom; \n\
595+ headerVerticalAnchors = 'top: artShapeLoader.bottom; \n\
565596 topMargin: units.gu(1);\n';
566597 }
567598 } else {
@@ -573,7 +604,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
573604 var headerLeftAnchor;
574605 var headerLeftAnchorHasMargin = false;
575606 if (isHorizontal && hasArt) {
576− headerLeftAnchor = 'left: artShapeHolder.right; \n\
607+ headerLeftAnchor = 'left: artShapeLoader.right; \n\
577608 leftMargin: units.gu(1);\n';
578609 headerLeftAnchorHasMargin = true;
579610 } else if (isHorizontal && isAudio) {
@@ -827,7 +858,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
827858 var audioButtonWidth;
828859 var audioButtonHeight;
829860 if (hasArt) {
830− audioButtonAnchorsFill = 'artShapeHolder';
861+ audioButtonAnchorsFill = 'artShapeLoader';
831862 audioButtonWidth = 'undefined';
832863 audioButtonHeight = 'undefined';
833864 } else {
@@ -841,15 +872,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
841872
842873 if (hasSummary) {
843874 var summaryTopAnchor;
844− if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
845− else if (headerAsOverlay && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
875+ if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
876+ else if (headerAsOverlay && hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
846877 else if (hasHeaderRow) summaryTopAnchor = 'row.bottom';
847878 else if (hasTitleContainer) summaryTopAnchor = 'headerTitleContainer.bottom';
848879 else if (hasMascot) summaryTopAnchor = 'mascotImage.bottom';
849880 else if (hasAttributes) summaryTopAnchor = 'attributesRow.bottom';
850881 else if (hasSubtitle) summaryTopAnchor = 'subtitleLabel.bottom';
851882 else if (hasTitle) summaryTopAnchor = 'titleLabel.bottom';
852− else if (hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
883+ else if (hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
853884 else summaryTopAnchor = 'parent.top';
854885
855886 var summaryColor;
@@ -864,24 +895,20 @@ function cardString(template, components, isCardTool, artShapeStyle) {
864895 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
865896 }
866897
867−// <<<<<<< TREE
868−// if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
869−// var touchdownAnchors;
870−// =======
871898 if (hasSocialActions) {
872899 var socialAnchors;
873900 var socialTopAnchor;
874901
875902 if (hasSummary) socialTopAnchor = 'summary.bottom;';
876− else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
877− else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
903+ else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
904+ else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
878905 else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
879906 else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
880907 else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
881908 else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
882909 else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
883910 else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
884− else if (hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
911+ else if (hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
885912 else socialTopAnchor = 'parent.top';
886913
887914 socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
@@ -901,36 +928,40 @@ function cardString(template, components, isCardTool, artShapeStyle) {
901928 if (hasBackground) {
902929 touchdownAnchors = 'fill: backgroundLoader';
903930 } else if (touchdownOnArtShape) {
904− touchdownAnchors = 'fill: artShapeHolder';
931+ touchdownAnchors = 'fill: artShapeLoader';
905932 } else {
906933 touchdownAnchors = 'fill: root'
907934 }
908935 code += kTouchdownCode.arg(touchdownAnchors);
909936 }
910937
911− var implicitHeight = 'implicitHeight: ';
912− if (hasSocialActions) {
913− implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
914− } else if (hasSummary) {
915− implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
916− } else if (isAudio) {
917− implicitHeight += 'audioButton.height;\n';
918− } else if (headerAsOverlay) {
919− implicitHeight += 'artShapeHolder.height;\n';
920− } else if (hasHeaderRow) {
921− implicitHeight += 'row.y + row.height + units.gu(1);\n';
922− } else if (hasMascot) {
923− implicitHeight += 'mascotImage.y + mascotImage.height;\n';
924− } else if (hasTitleContainer) {
925− implicitHeight += 'headerTitleContainer.y + headerTitleContainer.height + units.gu(1);\n';
926− } else if (hasAttributes) {
927− implicitHeight += 'attributesRow.y + attributesRow.height + units.gu(1);\n';
928− } else if (hasSubtitle) {
929− implicitHeight += 'subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
930− } else if (hasTitle) {
931− implicitHeight += 'titleLabel.y + titleLabel.height + units.gu(1);\n';
932− } else if (hasArt) {
933− implicitHeight += 'artShapeHolder.height;\n';
938+ if (isCardTool || categoryLayout !== "grid") {
939+ var implicitHeight = 'implicitHeight: ';
940+ if (hasSocialActions) {
941+ implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
942+ } else if (hasSummary) {
943+ implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
944+ } else if (isAudio) {
945+ implicitHeight += 'audioButton.height;\n';
946+ } else if (headerAsOverlay) {
947+ implicitHeight += 'artShapeLoader.height;\n';
948+ } else if (hasHeaderRow) {
949+ implicitHeight += 'row.y + row.height + units.gu(1);\n';
950+ } else if (hasMascot) {
951+ implicitHeight += 'mascotImage.y + mascotImage.height;\n';
952+ } else if (hasTitleContainer) {
953+ implicitHeight += 'headerTitleContainer.y + headerTitleContainer.height + units.gu(1);\n';
954+ } else if (hasAttributes) {
955+ implicitHeight += 'attributesRow.y + attributesRow.height + units.gu(1);\n';
956+ } else if (hasSubtitle) {
957+ implicitHeight += 'subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
958+ } else if (hasTitle) {
959+ implicitHeight += 'titleLabel.y + titleLabel.height + units.gu(1);\n';
960+ } else if (hasArt) {
961+ implicitHeight += 'artShapeLoader.height;\n';
962+ } else {
963+ implicitHeight = '';
964+ }
934965 } else {
935966 implicitHeight = '';
936967 }
@@ -941,13 +972,13 @@ function cardString(template, components, isCardTool, artShapeStyle) {
941972 return code;
942973}
943974
944−function createCardComponent(parent, template, components, isCardTool, artShapeStyle, identifier) {
975+function createCardComponent(parent, template, components, isCardTool, artShapeStyle, categoryLayout, identifier) {
945976 var imports = 'import QtQuick 2.4; \n\
946977 import Ubuntu.Components 1.3; \n\
947978 import Ubuntu.Settings.Components 0.1; \n\
948979 import Dash 0.1;\n\
949980 import Utils 0.1;\n';
950− var card = cardString(template, components, isCardTool, artShapeStyle);
981+ var card = cardString(template, components, isCardTool, artShapeStyle, categoryLayout);
951982 var code = imports + 'Component {\n' + card + '}\n';
952983
953984 try {
plugins/Dash/CardCreatorCache.qml+3−3
@@ -23,16 +23,16 @@ QtObject {
2323
2424 property var cache: new Object();
2525
26− function getCardComponent(template, components, isCardTool, artShapeStyle) {
26+ function getCardComponent(template, components, isCardTool, artShapeStyle, categoryLayout) {
2727 if (template === undefined || components === undefined)
2828 return undefined;
2929
3030 var tString = JSON.stringify(template);
3131 var cString = JSON.stringify(components);
32− var allString = tString + cString + isCardTool;
32+ var allString = tString + cString + isCardTool + artShapeStyle + categoryLayout;
3333 var component = cache[allString];
3434 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, allString);
35+ component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, categoryLayout, allString);
3636 cache[allString] = component;
3737 }
3838 return component;
plugins/Dash/Dash.qmltypesdeleted−100
@@ -1,100 +0,0 @@
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: "cacheBuffer"; type: "int" }
19− Property { name: "displayMarginBeginning"; type: "double" }
20− Property { name: "displayMarginEnd"; type: "double" }
21− }
22− Component {
23− name: "HorizontalJournal"
24− defaultProperty: "data"
25− prototype: "AbstractDashView"
26− exports: ["Dash/HorizontalJournal 0.1"]
27− exportMetaObjectRevisions: [0]
28− Property { name: "rowHeight"; type: "double" }
29− }
30− Component {
31− name: "ListViewWithPageHeader"
32− defaultProperty: "flickableData"
33− prototype: "QQuickFlickable"
34− exports: ["Dash/ListViewWithPageHeader 0.1"]
35− exportMetaObjectRevisions: [0]
36− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
37− Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
38− Property { name: "pageHeader"; type: "QQuickItem"; isPointer: true }
39− Property { name: "sectionDelegate"; type: "QQmlComponent"; isPointer: true }
40− Property { name: "sectionProperty"; type: "string" }
41− Property { name: "forceNoClip"; type: "bool" }
42− Property { name: "stickyHeaderHeight"; type: "int"; isReadonly: true }
43− Property { name: "headerItemShownHeight"; type: "double"; isReadonly: true }
44− Property { name: "cacheBuffer"; type: "int" }
45− Signal { name: "headerChanged" }
46− Method { name: "positionAtBeginning" }
47− Method { name: "showHeader" }
48− Method { name: "firstCreatedIndex"; type: "int" }
49− Method { name: "createdItemCount"; type: "int" }
50− Method {
51− name: "item"
52− type: "QQuickItem*"
53− Parameter { name: "modelIndex"; type: "int" }
54− }
55− Method {
56− name: "maximizeVisibleArea"
57− type: "bool"
58− Parameter { name: "modelIndex"; type: "int" }
59− }
60− Method {
61− name: "maximizeVisibleArea"
62− type: "bool"
63− Parameter { name: "modelIndex"; type: "int" }
64− Parameter { name: "itemHeight"; type: "int" }
65− }
66− }
67− Component {
68− name: "OrganicGrid"
69− defaultProperty: "data"
70− prototype: "AbstractDashView"
71− exports: ["Dash/OrganicGrid 0.1"]
72− exportMetaObjectRevisions: [0]
73− Property { name: "smallDelegateSize"; type: "QSizeF" }
74− Property { name: "bigDelegateSize"; type: "QSizeF" }
75− }
76− Component {
77− name: "VerticalJournal"
78− defaultProperty: "data"
79− prototype: "AbstractDashView"
80− exports: ["Dash/VerticalJournal 0.1"]
81− exportMetaObjectRevisions: [0]
82− Property { name: "columnWidth"; type: "double" }
83− }
84− Component {
85− prototype: "QObject"
86− name: "CardCreatorCache"
87− exports: ["CardCreatorCache -1.-1"]
88− exportMetaObjectRevisions: [-1]
89− isComposite: true
90− isCreatable: false
91− isSingleton: true
92− Property { name: "cache"; type: "QVariant" }
93− Method {
94− name: "getCardComponent"
95− type: "QVariant"
96− Parameter { name: "template"; type: "QVariant" }
97− Parameter { name: "components"; type: "QVariant" }
98− }
99− }
100−}
plugins/Dash/DashAudioPlayer.qml+45−21
@@ -20,16 +20,22 @@ import QtMultimedia 5.6
2020import Dash 0.1
2121
2222QtObject {
23− readonly property real progress: audio.position / audio.duration
24− readonly property bool playing: audio.playbackState === Audio.PlayingState
25− readonly property bool paused: audio.playbackState === Audio.PausedState
26− readonly property bool stopped: audio.playbackState === Audio.StoppedState
27− readonly property alias position: audio.position
28− readonly property url currentSource: audio.playlist.currentItemSource
23+ id: root
24+ readonly property real progress: priv.audio ? priv.audio.position / priv.audio.duration : 0.0
25+ readonly property bool playing: priv.audio ? priv.audio.playbackState === Audio.PlayingState : false
26+ readonly property bool paused: priv.audio ? priv.audio.playbackState === Audio.PausedState : false
27+ readonly property bool stopped: priv.audio ? priv.audio.playbackState === Audio.StoppedState : true
28+ readonly property int position: priv.audio ? priv.audio.position : 0
29+ readonly property url currentSource: priv.audio ? priv.audio.playlist.currentItemSource : ""
30+ readonly property Playlist playlist: priv.audio ? priv.audio.playlist : null
2931
3032 function playSource(newSource, newPlaylist) {
33+ if (!priv.audio) {
34+ console.info("DashAudioPlayer: creating player");
35+ priv.audio = priv.audioComponent.createObject(root);
36+ }
3137 stop();
32− audio.playlist.clear();
38+ priv.audio.playlist.clear();
3339 if (newPlaylist) {
3440 // Look for newSource in newPlaylist
3541 var sourceIndex = -1;
@@ -48,35 +54,53 @@ QtObject {
4854 for (var i in newPlaylist) {
4955 urls.push(newPlaylist[i]);
5056 }
51− audio.playlist.addItems(urls);
52− audio.playlist.currentIndex = sourceIndex;
57+ priv.audio.playlist.addItems(urls);
58+ priv.audio.playlist.currentIndex = sourceIndex;
5359 } else {
54− audio.playlist.addItem(newSource);
55− audio.playlist.currentIndex = 0;
60+ priv.audio.playlist.addItem(newSource);
61+ priv.audio.playlist.currentIndex = 0;
5662 }
5763 play();
5864 }
5965
6066 function stop() {
61− audio.stop();
67+ if (priv.audio) {
68+ priv.audio.stop();
69+ }
6270 }
6371
6472 function play() {
65− audio.play();
73+ if (priv.audio) {
74+ priv.audio.play();
75+ }
6676 }
6777
6878 function pause() {
69− audio.pause();
79+ if (priv.audio) {
80+ priv.audio.pause();
81+ }
7082 }
7183
72− property QtObject audio: Audio {
73− id: audio
74− objectName: "audio"
75− playlist: Playlist {
76− objectName: "playlist"
84+ property QtObject priv: QtObject {
85+ id: priv
86+ property Audio audio: null
87+ property Component audioComponent: Component {
88+ Audio {
89+ playlist: Playlist {
90+ objectName: "playlist"
91+ }
92+ /* Remove player in case of error so it gets recreated next time
93+ * we need it. Happens if backend media player restarted, for
94+ * instance. qtmultimedia should probably handle this
95+ * transparently (LP: #1616425).
96+ */
97+ onError: {
98+ console.warn("DashAudioPlayer: error event (" +
99+ priv.audio.errorString + "), destroying");
100+ priv.audio.destroy();
101+ }
102+ }
77103 }
78−
79− onErrorStringChanged: console.warn("Dash Audio player error:", errorString)
80104 }
81105
82106 function lengthToString(s) {
plugins/Dash/abstractdashview.cpp+13
@@ -16,6 +16,8 @@
1616
1717#include "abstractdashview.h"
1818
19+#include <private/qquickitem_p.h>
20+
1921AbstractDashView::AbstractDashView()
2022 : m_delegateModel(nullptr)
2123 , m_asyncRequestedIndex(-1)
@@ -249,6 +251,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
249251 }
250252 return nullptr;
251253 } else {
254+ QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
252255 addItemToView(modelIndex, item);
253256 return item;
254257 }
@@ -256,6 +259,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
256259
257260void AbstractDashView::releaseItem(QQuickItem *item)
258261{
262+ QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
259263 QQmlDelegateModel::ReleaseFlags flags = m_delegateModel->release(item);
260264 if (flags & QQmlDelegateModel::Destroyed) {
261265 item->setParentItem(nullptr);
@@ -294,6 +298,15 @@ void AbstractDashView::onModelUpdated(const QQmlChangeSet &changeSet, bool reset
294298 cleanupExistingItems();
295299 } else {
296300 processModelRemoves(changeSet.removes());
301+
302+ // The current AbstractDashViews do not support insertions that are not at the end
303+ // so reset if that happens
304+ Q_FOREACH(const QQmlChangeSet::Change insert, changeSet.inserts()) {
305+ if (insert.index < m_delegateModel->count() - 1) {
306+ cleanupExistingItems();
307+ break;
308+ }
309+ }
297310 }
298311 polish();
299312}
plugins/Dash/abstractdashview.h+3−4
@@ -21,13 +21,12 @@
2121
2222class QAbstractItemModel;
2323class QQmlComponent;
24−#pragma GCC diagnostic push
25−#pragma GCC diagnostic ignored "-pedantic"
24+
2625#include <private/qqmldelegatemodel_p.h>
26+#include <private/qquickitemchangelistener_p.h>
2727#include <qqmlinfo.h>
28−#pragma GCC diagnostic pop
2928
30−class AbstractDashView : public QQuickItem
29+class AbstractDashView : public QQuickItem, public QQuickItemChangeListener
3130{
3231 Q_OBJECT
3332
plugins/Dash/graphics/music_progress_bg.png

Binary file not shown.

plugins/Dash/horizontaljournal.cpp+1−4
@@ -26,12 +26,9 @@
2626#include "horizontaljournal.h"
2727
2828#include <qqmlengine.h>
29−#pragma GCC diagnostic push
30−#pragma GCC diagnostic ignored "-pedantic"
31−#include <private/qqmldelegatemodel_p.h>
3229#include <qqmlinfo.h>
30+#include <private/qqmldelegatemodel_p.h>
3331#include <private/qquickitem_p.h>
34−#pragma GCC diagnostic pop
3532
3633HorizontalJournal::HorizontalJournal()
3734 : m_firstVisibleIndex(-1)
plugins/Dash/listviewwithpageheader.cpp+14−8
@@ -95,14 +95,11 @@
9595#include <QDebug>
9696#include <qqmlinfo.h>
9797#include <qqmlengine.h>
98−#pragma GCC diagnostic push
99−#pragma GCC diagnostic ignored "-pedantic"
10098#include <private/qqmlcontext_p.h>
10199#include <private/qqmldelegatemodel_p.h>
102100#include <private/qqmlglobal_p.h>
103101#include <private/qquickitem_p.h>
104102#include <private/qquickanimation_p.h>
105−#pragma GCC diagnostic pop
106103// #include <private/qquickrectangle_p.h>
107104
108105qreal ListViewWithPageHeader::ListItem::height() const
@@ -256,6 +253,7 @@ void ListViewWithPageHeader::setHeader(QQuickItem *headerItem)
256253 oldHeaderHeight = m_headerItem->height();
257254 oldHeaderY = m_headerItem->y();
258255 m_headerItem->setParentItem(nullptr);
256+ QQuickItemPrivate::get(m_headerItem)->removeItemChangeListener(this, QQuickItemPrivate::ImplicitHeight);
259257 }
260258 m_headerItem = headerItem;
261259 if (m_headerItem) {
@@ -287,9 +285,11 @@ void ListViewWithPageHeader::setSectionDelegate(QQmlComponent *delegate)
287285 m_sectionDelegate = delegate;
288286
289287 m_topSectionItem = getSectionItem(QString(), false /*watchGeometry*/);
290− m_topSectionItem->setZ(3);
291− QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
292− connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
288+ if (m_topSectionItem) {
289+ m_topSectionItem->setZ(3);
290+ QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
291+ connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
292+ }
293293
294294 // TODO create sections for existing items
295295
@@ -700,7 +700,9 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
700700 if (flags & QQmlDelegateModel::Destroyed) {
701701 item->setParentItem(nullptr);
702702 }
703− listItem->sectionItem()->deleteLater();
703+ if (listItem->sectionItem()) {
704+ listItem->sectionItem()->deleteLater();
705+ }
704706 delete listItem;
705707}
706708
@@ -776,7 +778,7 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, b
776778 }
777779 m_sectionDelegate->completeCreate();
778780
779− if (watchGeometry) {
781+ if (watchGeometry && sectionItem) {
780782 QQuickItemPrivate::get(sectionItem)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
781783 }
782784
@@ -1332,6 +1334,10 @@ void ListViewWithPageHeader::layout()
13321334 }
13331335 }
13341336 }
1337+ if (m_headerItem) {
1338+ const bool cullHeader = m_headerItem->y() + m_headerItem->height() < contentY();
1339+ QQuickItemPrivate::get(m_headerItem)->setCulled(cullHeader);
1340+ }
13351341 m_inLayout = false;
13361342}
13371343
plugins/Dash/organicgrid.cpp+3−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014, 2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -16,10 +16,9 @@
1616
1717#include "organicgrid.h"
1818
19−#pragma GCC diagnostic push
20−#pragma GCC diagnostic ignored "-pedantic"
19+#include <math.h>
20+
2121#include <private/qquickitem_p.h>
22−#pragma GCC diagnostic pop
2322
2423OrganicGrid::OrganicGrid()
2524 : m_firstVisibleIndex(-1)
plugins/Dash/verticaljournal.cpp+12−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -27,10 +27,9 @@
2727 */
2828#include "verticaljournal.h"
2929
30−#pragma GCC diagnostic push
31−#pragma GCC diagnostic ignored "-pedantic"
30+#include <math.h>
31+
3232#include <private/qquickitem_p.h>
33−#pragma GCC diagnostic pop
3433
3534VerticalJournal::VerticalJournal()
3635 : m_columnWidth(0)
@@ -97,7 +96,7 @@ void VerticalJournal::findTopModelIndexToAdd(int *modelIndex, qreal *yPos)
9796
9897 if (*modelIndex > 0) {
9998 Q_ASSERT(m_indexColumnMap.contains(*modelIndex));
100− while (m_indexColumnMap[*modelIndex] != columnToAddTo) {
99+ while (*modelIndex > 0 && m_indexColumnMap[*modelIndex] != columnToAddTo) {
101100 // We found out that we have to add to columnToAddTo
102101 // and thought that we had to add *modelIndex, but history tells
103102 // it is not correct, so find up from *modelIndex until we found the index
@@ -271,3 +270,11 @@ void VerticalJournal::processModelRemoves(const QVector<QQmlChangeSet::Change> &
271270 }
272271 }
273272}
273+
274+void VerticalJournal::itemGeometryChanged(QQuickItem * /*item*/, const QRectF &newGeometry, const QRectF &oldGeometry)
275+{
276+ const qreal heightDiff = newGeometry.height() - oldGeometry.height();
277+ if (heightDiff != 0) {
278+ relayout();
279+ }
280+}
plugins/Dash/verticaljournal.h+3
@@ -65,6 +65,9 @@ public:
6565 qreal columnWidth() const;
6666 void setColumnWidth(qreal columnWidth);
6767
68+protected:
69+ void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
70+
6871Q_SIGNALS:
6972 void columnWidthChanged();
7073
plugins/GlobalShortcut/GlobalShortcut.qmltypesdeleted−31
@@ -1,31 +0,0 @@
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 GlobalShortcut 1.0 plugins'
8−
9−Module {
10− Component {
11− name: "GlobalShortcut"
12− defaultProperty: "data"
13− prototype: "QQuickItem"
14− exports: ["GlobalShortcut/GlobalShortcut 1.0"]
15− exportMetaObjectRevisions: [0]
16− Property { name: "shortcut"; type: "QVariant" }
17− Property { name: "active"; type: "bool" }
18− Signal {
19− name: "shortcutChanged"
20− Parameter { name: "shortcut"; type: "QVariant" }
21− }
22− Signal {
23− name: "triggered"
24− Parameter { name: "shortcut"; type: "string" }
25− }
26− Signal {
27− name: "activeChanged"
28− Parameter { name: "active"; type: "bool" }
29− }
30− }
31−}
plugins/Greeter/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,4 +1,4 @@
1−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=7)
1+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=9)
22pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
33
44add_definitions(-DSM_BUSNAME=systemBus)
plugins/Greeter/Unity/Launcher/Launcher.qmltypesdeleted−182
@@ -1,182 +0,0 @@
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/Greeter'
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− }
17− Component {
18− name: "LauncherModel"
19− prototype: "unity::shell::launcher::LauncherModelInterface"
20− exports: ["Unity.Launcher/LauncherModel 0.1"]
21− isCreatable: false
22− isSingleton: true
23− exportMetaObjectRevisions: [0]
24− Method {
25− name: "requestRemove"
26− Parameter { name: "appId"; type: "string" }
27− }
28− Method { name: "refresh" }
29− Method {
30− name: "get"
31− type: "unity::shell::launcher::LauncherItemInterface*"
32− Parameter { name: "index"; type: "int" }
33− }
34− Method {
35− name: "move"
36− Parameter { name: "oldIndex"; type: "int" }
37− Parameter { name: "newIndex"; type: "int" }
38− }
39− Method {
40− name: "pin"
41− Parameter { name: "appId"; type: "string" }
42− Parameter { name: "index"; type: "int" }
43− }
44− Method {
45− name: "pin"
46− Parameter { name: "appId"; type: "string" }
47− }
48− Method {
49− name: "quickListActionInvoked"
50− Parameter { name: "appId"; type: "string" }
51− Parameter { name: "actionIndex"; type: "int" }
52− }
53− Method {
54− name: "setUser"
55− Parameter { name: "username"; type: "string" }
56− }
57− Method {
58− name: "getUrlForAppId"
59− type: "string"
60− Parameter { name: "appId"; type: "string" }
61− }
62− }
63− Component {
64− name: "QuickListModel"
65− prototype: "unity::shell::launcher::QuickListModelInterface"
66− exports: ["Unity.Launcher/QuickListModel 0.1"]
67− isCreatable: false
68− exportMetaObjectRevisions: [0]
69− }
70− Component {
71− name: "unity::shell::launcher::LauncherItemInterface"
72− prototype: "QObject"
73− exports: ["Unity.Launcher/LauncherItemInterface 0.1"]
74− isCreatable: false
75− exportMetaObjectRevisions: [0]
76− Property { name: "appId"; type: "string"; isReadonly: true }
77− Property { name: "name"; type: "string"; isReadonly: true }
78− Property { name: "icon"; type: "string"; isReadonly: true }
79− Property { name: "pinned"; type: "bool"; isReadonly: true }
80− Property { name: "running"; type: "bool"; isReadonly: true }
81− Property { name: "recent"; type: "bool"; isReadonly: true }
82− Property { name: "progress"; type: "int"; isReadonly: true }
83− Property { name: "count"; type: "int"; isReadonly: true }
84− Property { name: "countVisible"; type: "bool"; isReadonly: true }
85− Property { name: "focused"; type: "bool"; isReadonly: true }
86− Property {
87− name: "quickList"
88− type: "unity::shell::launcher::QuickListModelInterface"
89− isReadonly: true
90− isPointer: true
91− }
92− Signal {
93− name: "nameChanged"
94− Parameter { name: "name"; type: "string" }
95− }
96− Signal {
97− name: "iconChanged"
98− Parameter { name: "icon"; type: "string" }
99− }
100− Signal {
101− name: "pinnedChanged"
102− Parameter { name: "pinned"; type: "bool" }
103− }
104− Signal {
105− name: "runningChanged"
106− Parameter { name: "running"; type: "bool" }
107− }
108− Signal {
109− name: "recentChanged"
110− Parameter { name: "running"; type: "bool" }
111− }
112− Signal {
113− name: "progressChanged"
114− Parameter { name: "progress"; type: "int" }
115− }
116− Signal {
117− name: "countChanged"
118− Parameter { name: "count"; type: "int" }
119− }
120− Signal {
121− name: "countVisibleChanged"
122− Parameter { name: "countVisible"; type: "bool" }
123− }
124− Signal {
125− name: "focusedChanged"
126− Parameter { name: "focused"; type: "bool" }
127− }
128− }
129− Component {
130− name: "unity::shell::launcher::LauncherModelInterface"
131− prototype: "QAbstractListModel"
132− exports: ["Unity.Launcher/LauncherModelInterface 0.1"]
133− isCreatable: false
134− exportMetaObjectRevisions: [0]
135− Property {
136− name: "applicationManager"
137− type: "unity::shell::application::ApplicationManagerInterface"
138− isPointer: true
139− }
140− Property { name: "onlyPinned"; type: "bool" }
141− Signal { name: "hint" }
142− Method {
143− name: "move"
144− Parameter { name: "oldIndex"; type: "int" }
145− Parameter { name: "newIndex"; type: "int" }
146− }
147− Method {
148− name: "get"
149− type: "unity::shell::launcher::LauncherItemInterface*"
150− Parameter { name: "index"; type: "int" }
151− }
152− Method {
153− name: "pin"
154− Parameter { name: "appId"; type: "string" }
155− Parameter { name: "index"; type: "int" }
156− }
157− Method {
158− name: "pin"
159− Parameter { name: "appId"; type: "string" }
160− }
161− Method {
162− name: "requestRemove"
163− Parameter { name: "appId"; type: "string" }
164− }
165− Method {
166− name: "quickListActionInvoked"
167− Parameter { name: "appId"; type: "string" }
168− Parameter { name: "actionIndex"; type: "int" }
169− }
170− Method {
171− name: "setUser"
172− Parameter { name: "username"; type: "string" }
173− }
174− }
175− Component {
176− name: "unity::shell::launcher::QuickListModelInterface"
177− prototype: "QAbstractListModel"
178− exports: ["Unity.Launcher/QuickListInterface 0.1"]
179− isCreatable: false
180− exportMetaObjectRevisions: [0]
181− }
182−}
plugins/Greeter/Unity/Launcher/launcheritem.cpp+14
@@ -32,6 +32,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
3232 m_countVisible(false),
3333 m_focused(false),
3434 m_alerting(false),
35+ m_surfaceCount(0),
3536 m_quickList(new QuickListModel(this))
3637{
3738 QuickListEntry nameAction;
@@ -179,6 +180,19 @@ void LauncherItem::setAlerting(bool alerting)
179180 }
180181}
181182
183+int LauncherItem::surfaceCount() const
184+{
185+ return m_surfaceCount;
186+}
187+
188+void LauncherItem::setSurfaceCount(int surfaceCount)
189+{
190+ if (m_surfaceCount != surfaceCount) {
191+ m_surfaceCount = surfaceCount;
192+ Q_EMIT surfaceCountChanged(surfaceCount);
193+ }
194+}
195+
182196unity::shell::launcher::QuickListModelInterface *LauncherItem::quickList() const
183197{
184198 return m_quickList;
plugins/Greeter/Unity/Launcher/launcheritem.h+3−1
@@ -42,6 +42,7 @@ public:
4242 bool countVisible() const override;
4343 bool focused() const override;
4444 bool alerting() const override;
45+ int surfaceCount() const override;
4546
4647 unity::shell::launcher::QuickListModelInterface *quickList() const override;
4748
@@ -56,7 +57,7 @@ private:
5657 void setCountVisible(bool countVisible);
5758 void setFocused(bool focused);
5859 void setAlerting(bool alerting);
59−
60+ void setSurfaceCount(int surfaceCount);
6061
6162private:
6263 QString m_appId;
@@ -70,6 +71,7 @@ private:
7071 bool m_countVisible;
7172 bool m_focused;
7273 bool m_alerting;
74+ int m_surfaceCount;
7375 QuickListModel *m_quickList;
7476
7577 friend class LauncherModel;
plugins/Greeter/Unity/Launcher/launchermodelas.cpp+2−7
@@ -69,18 +69,13 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
6969 return item->focused();
7070 case RoleRunning:
7171 return item->running();
72+ case RoleSurfaceCount:
73+ return item->surfaceCount();
7274 }
7375
7476 return QVariant();
7577}
7678
77−void LauncherModel::setAlerting(const QString &appId, bool alerting)
78−{
79− Q_UNUSED(appId)
80− Q_UNUSED(alerting)
81− qWarning() << "This is a read only implementation. Cannot set alert-state of items.";
82−}
83−
8479unity::shell::launcher::LauncherItemInterface *LauncherModel::get(int index) const
8580{
8681 if (index < 0 || index >= m_list.count()) {
plugins/Greeter/Unity/Launcher/launchermodelas.h−1
@@ -41,7 +41,6 @@ public:
4141
4242 QVariant data(const QModelIndex &index, int role) const override;
4343
44− Q_INVOKABLE void setAlerting(const QString &appId, bool alerting) override;
4544 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const override;
4645 Q_INVOKABLE void move(int oldIndex, int newIndex) override;
4746 Q_INVOKABLE void pin(const QString &appId, int index = -1) override;
plugins/IntegratedLightDM/CMakeLists.txtdeleted−40
@@ -1,40 +0,0 @@
1−pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2−# TODO: Once we split out a separate greeter process, uncomment these lines
3−#pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-2)
4−
5−add_subdirectory(liblightdm)
6−
7−include_directories(
8− ${CMAKE_CURRENT_SOURCE_DIR}
9− ${CMAKE_CURRENT_BINARY_DIR}
10− ${CMAKE_SOURCE_DIR}/plugins/Utils
11− ${CMAKE_SOURCE_DIR}/tests/mocks/IntegratedLightDM
12− #${LIBLIGHTDM_INCLUDE_DIRS}
13− ${libunity8-private_SOURCE_DIR}
14− ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
15−)
16−
17−set(QMLPLUGIN_SRC
18− ../Utils/unitysortfilterproxymodelqml.cpp # FIXME evaluate a more generic approach for using other plugins
19− DBusGreeter.cpp
20− DBusGreeterList.cpp
21− Greeter.cpp
22− plugin.cpp
23− UsersModel.cpp
24− )
25−
26−add_library(IntegratedLightDM-qml MODULE
27− ${QMLPLUGIN_SRC}
28− )
29−
30−target_link_libraries(IntegratedLightDM-qml
31− integratedLightDM
32− unity8-private
33−# TODO: Once we split out a separate greeter process, uncomment these lines
34−# ${LIBLIGHTDM_LDFLAGS}
35− ${LIBUSERMETRICSOUTPUT_LDFLAGS}
36− )
37−
38−qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
39−
40−add_unity8_plugin(IntegratedLightDM 0.1 IntegratedLightDM TARGETS IntegratedLightDM-qml)
plugins/LightDM/CMakeLists.txtnew file+26
@@ -0,0 +1,26 @@
1+pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2+
3+find_package(Qt5Core REQUIRED)
4+find_package(Qt5Quick REQUIRED)
5+
6+include_directories(
7+ ${CMAKE_CURRENT_SOURCE_DIR}
8+ ${CMAKE_CURRENT_BINARY_DIR}
9+ ${CMAKE_SOURCE_DIR}/plugins/Utils
10+ ${CMAKE_BINARY_DIR}/tests/mocks/LightDM/IntegratedLightDM
11+ ${libunity8-private_SOURCE_DIR}
12+ ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
13+)
14+
15+set(QMLPLUGIN_SRC
16+ ../Utils/unitysortfilterproxymodelqml.cpp
17+ DBusGreeter.cpp
18+ DBusGreeterList.cpp
19+ Greeter.cpp
20+ plugin.cpp
21+ SessionsModel.cpp
22+ UsersModel.cpp
23+ )
24+
25+add_subdirectory(FullLightDM)
26+add_subdirectory(IntegratedLightDM)
plugins/IntegratedLightDM/DBusGreeter.cpp → plugins/LightDM/DBusGreeter.cpprenamed+5−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014, 2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,8 @@ DBusGreeter::DBusGreeter(Greeter *greeter, const QString &path)
2424 : UnityDBusObject(path, QStringLiteral("com.canonical.UnityGreeter"), true, greeter),
2525 m_greeter(greeter)
2626{
27− connect(m_greeter, &Greeter::isActiveChanged, this, &DBusGreeter::isActiveChangedHandler);
27+ connect(m_greeter, &Greeter::isActiveChanged,
28+ this, &DBusGreeter::isActiveChangedHandler);
2829}
2930
3031bool DBusGreeter::isActive() const
@@ -34,12 +35,12 @@ bool DBusGreeter::isActive() const
3435
3536void DBusGreeter::ShowGreeter()
3637{
37− return Q_EMIT m_greeter->showGreeter();
38+ Q_EMIT m_greeter->showGreeter();
3839}
3940
4041void DBusGreeter::HideGreeter()
4142{
42− return Q_EMIT m_greeter->hideGreeter();
43+ Q_EMIT m_greeter->hideGreeter();
4344}
4445
4546void DBusGreeter::isActiveChangedHandler()
plugins/IntegratedLightDM/DBusGreeter.h → plugins/LightDM/DBusGreeter.hrenamed

The content is the same.

plugins/IntegratedLightDM/DBusGreeterList.cpp → plugins/LightDM/DBusGreeterList.cpprenamed

The content is the same.

plugins/IntegratedLightDM/DBusGreeterList.h → plugins/LightDM/DBusGreeterList.hrenamed

The content is the same.

plugins/LightDM/FullLightDM/CMakeLists.txtnew file+28
@@ -0,0 +1,28 @@
1+pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-3)
2+
3+set(PLUGIN_CLASSNAME "FullLightDM")
4+
5+add_definitions(-DFULL_LIGHTDM)
6+
7+include_directories(
8+ ../
9+ ${LIBLIGHTDM_INCLUDE_DIRS}
10+ ${CMAKE_CURRENT_BINARY_DIR}
11+ )
12+
13+foreach(source_file ${QMLPLUGIN_SRC})
14+ list(APPEND RELATIVE_QMLPLUGIN_SRC ../${source_file})
15+endforeach()
16+
17+add_library(FullLightDM-qml MODULE
18+ ${RELATIVE_QMLPLUGIN_SRC}
19+ )
20+
21+target_link_libraries(FullLightDM-qml
22+ unity8-private
23+ ${LIBLIGHTDM_LDFLAGS}
24+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
25+ )
26+
27+qt5_use_modules(FullLightDM-qml DBus Gui Qml)
28+add_unity8_plugin(FullLightDM 0.1 LightDM/FullLightDM TARGETS FullLightDM-qml)
plugins/LightDM/FullLightDM/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module LightDM.FullLightDM
2+plugin FullLightDM-qml
3+typeinfo FullLightDM.qmltypes
plugins/IntegratedLightDM/Greeter.cpp → plugins/LightDM/Greeter.cpprenamed+13−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -13,7 +13,6 @@
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 *
16− * Author: Michael Terry <michael.terry@canonical.com>
1716 */
1817
1918#include "Greeter.h"
@@ -72,12 +71,24 @@ QString Greeter::authenticationUser() const
7271 return d->m_greeter->authenticationUser();
7372}
7473
74+QString Greeter::defaultSessionHint() const
75+{
76+ Q_D(const Greeter);
77+ return d->m_greeter->defaultSessionHint();
78+}
79+
7580bool Greeter::promptless() const
7681{
7782 Q_D(const Greeter);
7883 return d->promptless;
7984}
8085
86+QString Greeter::selectUser() const
87+{
88+ Q_D(const Greeter);
89+ return d->m_greeter->selectUserHint();
90+}
91+
8192void Greeter::authenticate(const QString &username)
8293{
8394 Q_D(Greeter);
plugins/IntegratedLightDM/Greeter.h → plugins/LightDM/Greeter.hrenamed+5−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013 Canonical, Ltd.
2+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -13,7 +13,6 @@
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 *
16− * Authors: Michael Terry <michael.terry@canonical.com>
1716 */
1817
1918/* This class is a really tiny filter around QLightDM::Greeter. There are some
@@ -37,7 +36,9 @@ class Greeter : public QObject
3736 Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
3837 Q_PROPERTY(bool authenticated READ isAuthenticated NOTIFY isAuthenticatedChanged)
3938 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
39+ Q_PROPERTY(QString defaultSession READ defaultSessionHint CONSTANT)
4040 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
41+ Q_PROPERTY(QString selectUser READ selectUser CONSTANT)
4142
4243public:
4344 explicit Greeter(QObject* parent=0);
@@ -45,7 +46,9 @@ public:
4546 bool isActive() const;
4647 bool isAuthenticated() const;
4748 QString authenticationUser() const;
49+ QString defaultSessionHint() const;
4850 bool promptless() const;
51+ QString selectUser() const;
4952
5053public Q_SLOTS:
5154 void authenticate(const QString &username=QString());
plugins/IntegratedLightDM/GreeterPrivate.h → plugins/LightDM/GreeterPrivate.hrenamed

The content is the same.

plugins/IntegratedLightDM/IntegratedLightDM.qmltypes → plugins/LightDM/IntegratedLightDM.qmltypesrenamed

The content is the same.

plugins/LightDM/IntegratedLightDM/CMakeLists.txtnew file+33
@@ -0,0 +1,33 @@
1+set(PLUGIN_CLASSNAME "IntegratedLightDM")
2+
3+add_definitions(-DINTEGRATED_LIGHTDM)
4+
5+foreach(include_directory ${QMLPLUGIN_INCLUDES})
6+ list(APPEND RELATIVE_QMLPLUGIN_INCLUDES ../${include_directory})
7+endforeach()
8+
9+include_directories(
10+ . #QLightDM
11+ ${QMLPLUGIN_INCLUDES}
12+ ${libunity8-private_SOURCE_DIR}
13+ ${CMAKE_CURRENT_BINARY_DIR}
14+)
15+
16+foreach(source_file ${QMLPLUGIN_SRC})
17+ list(APPEND RELATIVE_QMLPLUGIN_SRC ../${source_file})
18+endforeach()
19+
20+add_library(IntegratedLightDM-qml MODULE
21+ ${RELATIVE_QMLPLUGIN_SRC}
22+ )
23+
24+target_link_libraries(IntegratedLightDM-qml
25+ integratedLightDM
26+ unity8-private
27+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
28+ )
29+
30+qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
31+add_unity8_plugin(IntegratedLightDM 0.1 LightDM/IntegratedLightDM TARGETS IntegratedLightDM-qml)
32+
33+add_subdirectory(liblightdm)
plugins/LightDM/IntegratedLightDM/QLightDM/Greeternew file+17
@@ -0,0 +1,17 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "../liblightdm/Greeter.h"
plugins/LightDM/IntegratedLightDM/QLightDM/SessionsModelnew file+17
@@ -0,0 +1,17 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "../liblightdm/SessionsModel.h"
plugins/LightDM/IntegratedLightDM/QLightDM/UsersModelnew file+17
@@ -0,0 +1,17 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "../liblightdm/UsersModel.h"
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt → plugins/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txtrenamed+4−2
@@ -2,8 +2,10 @@ pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
22
33set(LibLightDM_SOURCES
44 Greeter.cpp
5+ SessionsModel.cpp
56 UsersModel.cpp
67 GreeterPrivate.cpp
8+ SessionsModelPrivate.cpp
79 UsersModelPrivate.cpp
810 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
911 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
@@ -46,8 +48,8 @@ set_target_properties(integratedLightDMSession PROPERTIES
4648 COMPILE_FLAGS "-DSM_BUSNAME=sessionBus -fPIC")
4749set_target_properties(MockLightDM-demo-shared PROPERTIES
4850 COMPILE_FLAGS "-DSM_BUSNAME=systemBus"
49− OUTPUT_NAME lightdm-qt5-2)
51+ OUTPUT_NAME lightdm-qt5-3)
5052
5153install(TARGETS MockLightDM-demo-shared
52− DESTINATION ${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/demo
54+ DESTINATION ${SHELL_INSTALL_QML}/mocks/LightDM/IntegratedLightDM/demo
5355 )
plugins/IntegratedLightDM/liblightdm/Greeter.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.cpprenamed

The content is the same.

plugins/IntegratedLightDM/liblightdm/Greeter.h → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.hrenamed

The content is the same.

plugins/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpprenamed+1−2
@@ -50,8 +50,7 @@ public:
5050 {
5151 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
5252
53− connect(&futureWatcher, &QFutureWatcher<int>::finished,
54− this, &GreeterImpl::finishPam);
53+ connect(&futureWatcher, &QFutureWatcher<int>::finished, this, &GreeterImpl::finishPam);
5554 connect(this, SIGNAL(showMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)),
5655 this, SLOT(handleMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)));
5756 // This next connect is how we pass ResponseFutures between threads
plugins/IntegratedLightDM/liblightdm/GreeterPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.hrenamed

The content is the same.

plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cppnew file+88
@@ -0,0 +1,88 @@
1+/*
2+ * Copyright (C) 2015 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+
18+
19+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
20+ * CHANGES MADE HERE MUST BE REFLECTED ON THE MOCK LIB
21+ * COUNTERPART IN tests/mocks/LightDM/IntegratedLightDM/liblightdm
22+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
23+
24+// LightDM currently is Qt4 compatible, and so doesn't define setRoleNames.
25+// To use the same method of setting role name that it does, we
26+// set our compatibility to Qt4 here too.
27+#define QT_DISABLE_DEPRECATED_BEFORE QT_VERSION_CHECK(4, 0, 0)
28+
29+#include "SessionsModel.h"
30+#include "SessionsModelPrivate.h"
31+#include <QtCore/QDir>
32+#include <QtCore/QString>
33+
34+namespace QLightDM
35+{
36+
37+SessionsModel::SessionsModel(QObject* parent) :
38+ QAbstractListModel(parent),
39+ d_ptr(new SessionsModelPrivate(this))
40+{
41+ Q_D(SessionsModel);
42+ m_roleNames = QAbstractListModel::roleNames();
43+ m_roleNames[KeyRole] = "key";
44+ m_roleNames[TypeRole] = "type";
45+}
46+
47+SessionsModel::~SessionsModel()
48+{
49+ delete d_ptr;
50+}
51+
52+QVariant SessionsModel::data(const QModelIndex& index, int role) const
53+{
54+ Q_D(const SessionsModel);
55+
56+ if(!index.isValid()) {
57+ return QVariant();
58+ }
59+
60+ int row = index.row();
61+
62+ switch (role) {
63+ case QLightDM::SessionsModel::KeyRole:
64+ return d->sessionItems[row].key;
65+ case Qt::DisplayRole:
66+ return d->sessionItems[row].name;
67+ default:
68+ return QVariant();
69+ }
70+}
71+
72+QHash<int, QByteArray> SessionsModel::roleNames() const
73+{
74+ return m_roleNames;
75+}
76+
77+int SessionsModel::rowCount(const QModelIndex& parent) const
78+{
79+ Q_D(const SessionsModel);
80+
81+ if (parent.isValid()) {
82+ return 0;
83+ } else { // parent is root
84+ return d->sessionItems.size();
85+ }
86+}
87+
88+} // namespace QLightDM
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.hnew file+72
@@ -0,0 +1,72 @@
1+/*
2+ * Copyright (C) 2015 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+
18+#ifndef UNITY_INTEGRATED_SESSIONSMODEL_H
19+#define UNITY_INTEGRATED_SESSIONSMODEL_H
20+
21+#include <QtCore/QAbstractListModel>
22+#include <QtCore/QString>
23+
24+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25+ * CHANGES MADE HERE MUST BE REFLECTED ON THE MOCK LIB
26+ * COUNTERPART IN tests/mocks/LightDM/IntegratedLightDM/liblightdm
27+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
28+
29+// This is taken from liblightdm and modified to confirm to our syle conventions
30+namespace QLightDM
31+{
32+class SessionsModelPrivate;
33+
34+class Q_DECL_EXPORT SessionsModel : public QAbstractListModel
35+ {
36+ Q_OBJECT
37+
38+ Q_ENUMS(SessionModelRoles SessionType)
39+
40+ public:
41+
42+ enum SessionModelRoles {
43+ //name is exposed as Qt::DisplayRole
44+ //comment is exposed as Qt::TooltipRole
45+ KeyRole = Qt::UserRole,
46+ IdRole = KeyRole, /** Deprecated */
47+ TypeRole
48+ };
49+
50+ enum SessionType {
51+ LocalSessions,
52+ RemoteSessions
53+ };
54+
55+ explicit SessionsModel(QObject* parent=0); /** Deprecated. Loads local sessions*/
56+ explicit SessionsModel(SessionsModel::SessionType, QObject* parent=0);
57+ virtual ~SessionsModel();
58+
59+ QHash<int, QByteArray> roleNames() const override;
60+ int rowCount(const QModelIndex& parent) const override;
61+ QVariant data(const QModelIndex& index, int role) const override;
62+
63+ protected:
64+ SessionsModelPrivate* const d_ptr;
65+
66+ private:
67+ QHash<int, QByteArray> m_roleNames;
68+ Q_DECLARE_PRIVATE(SessionsModel)
69+ };
70+}
71+
72+#endif // UNITY_INTEGRATED_SESSIONSMODEL_H
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cppnew file+36
@@ -0,0 +1,36 @@
1+/*
2+ * Copyright (C) 2015 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+
18+#include "SessionsModelPrivate.h"
19+
20+#include <QDir>
21+#include <QSettings>
22+#include <QStringList>
23+
24+namespace QLightDM
25+{
26+
27+SessionsModelPrivate::SessionsModelPrivate(SessionsModel* parent)
28+ : q_ptr(parent)
29+{
30+ // Since this model is never visible, as there is only 1 session,
31+ // just use the session name as the key
32+ QString sessionName = qgetenv("XDG_SESSION_DESKTOP");
33+ sessionItems.append({sessionName, "", sessionName, ""});
34+}
35+
36+} // namespace QLightDM
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.hnew file+54
@@ -0,0 +1,54 @@
1+/*
2+ * Copyright (C) 2015 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+
18+#ifndef UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
19+#define UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
20+
21+#include <QtCore/QList>
22+#include <QtCore/QString>
23+
24+namespace QLightDM
25+{
26+class SessionsModel;
27+
28+class SessionItem
29+{
30+public:
31+ QString key;
32+ QString type; // unused
33+ QString name;
34+ QString comment; // unused
35+};
36+
37+class SessionsModelPrivate
38+{
39+public:
40+ explicit SessionsModelPrivate(SessionsModel* parent=0);
41+ virtual ~SessionsModelPrivate() = default;
42+
43+ QList<SessionItem> sessionItems;
44+
45+protected:
46+ SessionsModel* const q_ptr;
47+
48+private:
49+ Q_DECLARE_PUBLIC(SessionsModel)
50+};
51+
52+} // namespace QLightDM
53+
54+#endif // UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
plugins/IntegratedLightDM/liblightdm/UsersModel.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpprenamed+4−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -40,8 +40,6 @@ UsersModel::UsersModel(QObject *parent) :
4040 QAbstractListModel(parent),
4141 d_ptr(new UsersModelPrivate(this))
4242{
43− Q_D(UsersModel);
44−
4543 // Extend roleNames (we want to keep the "display" role)
4644 QHash<int, QByteArray> roles = roleNames();
4745 roles[NameRole] = "name";
@@ -52,6 +50,7 @@ UsersModel::UsersModel(QObject *parent) :
5250 roles[SessionRole] = "session";
5351 roles[HasMessagesRole] = "hasMessages";
5452 roles[ImagePathRole] = "imagePath";
53+ roles[UidRole] = "uid";
5554 setRoleNames(roles);
5655
5756 connect(d_ptr, &UsersModelPrivate::dataChanged, this, [this](int i) {
@@ -101,6 +100,8 @@ QVariant UsersModel::data(const QModelIndex &index, int role) const
101100 return d->entries[row].has_messages;
102101 case UsersModel::ImagePathRole:
103102 return "";
103+ case UsersModel::UidRole:
104+ return d->entries[row].uid;
104105 default:
105106 return QVariant();
106107 }
plugins/IntegratedLightDM/liblightdm/UsersModel.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.hrenamed+2−1
@@ -50,7 +50,8 @@ public:
5050 SessionRole,
5151 HasMessagesRole,
5252 ImagePathRole,
53− BackgroundPathRole
53+ BackgroundPathRole,
54+ UidRole
5455 };
5556
5657 int rowCount(const QModelIndex &parent) const override;
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpprenamed+5−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
2626#include <QDir>
2727#include <QSettings>
2828#include <QStringList>
29+#include <unistd.h>
2930
3031namespace QLightDM
3132{
@@ -37,6 +38,7 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
3738{
3839 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
3940 QString currentUser = g_get_user_name();
41+ uid_t currentUid = getuid();
4042
4143 if (demoFile.exists()) {
4244 QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
@@ -46,10 +48,10 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
4648 Q_FOREACH(const QString &user, users)
4749 {
4850 QString name = settings.value(user + "/name", user).toString();
49− entries.append({user, name, 0, 0, false, false, 0, 0});
51+ entries.append({user, name, 0, 0, false, false, 0, 0, currentUid++});
5052 }
5153 } else {
52− entries.append({currentUser, 0, 0, 0, false, false, 0, 0});
54+ entries.append({currentUser, 0, 0, 0, false, false, 0, 0, currentUid});
5355
5456 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged,
5557 this, [this](const QString &user) {
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.hrenamed+2−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -40,6 +40,7 @@ public:
4040 bool has_messages;
4141 QString session;
4242 QString infographic;
43+ uid_t uid;
4344};
4445
4546class UsersModelPrivate : public QObject
plugins/LightDM/IntegratedLightDM/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module LightDM.IntegratedLightDM
2+plugin IntegratedLightDM-qml
3+typeinfo IntegratedLightDM.qmltypes
plugins/LightDM/SessionsModel.cppnew file+122
@@ -0,0 +1,122 @@
1+/*
2+ * Copyright (C) 2015 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+
18+#include "SessionsModel.h"
19+#include <QtCore/QFile>
20+#include <QtCore/QSortFilterProxyModel>
21+
22+QHash<int, QByteArray> SessionsModel::roleNames() const
23+{
24+ return m_roleNames;
25+}
26+
27+int SessionsModel::rowCount(const QModelIndex& parent) const
28+{
29+ return m_model->rowCount(parent);
30+}
31+
32+QList<QUrl> SessionsModel::iconSearchDirectories() const
33+{
34+ return m_iconSearchDirectories;
35+}
36+
37+void SessionsModel::setIconSearchDirectories(const QList<QUrl> searchDirectories)
38+{
39+ // QML gives us a url with file:// prepended which breaks QFile::exists()
40+ // so convert the url to a local file
41+ QList<QUrl> localList = {};
42+ Q_FOREACH(const QUrl& searchDirectory, searchDirectories)
43+ {
44+ localList.append(searchDirectory.toLocalFile());
45+ }
46+ m_iconSearchDirectories = localList;
47+ Q_EMIT iconSearchDirectoriesChanged();
48+}
49+
50+QUrl SessionsModel::iconUrl(const QString sessionName) const
51+{
52+ Q_FOREACH(const QUrl& searchDirectory, m_iconSearchDirectories)
53+ {
54+ // This is an established icon naming convention
55+ QString customIconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
56+ "/custom_" + sessionName + "_badge.png";
57+ QString iconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
58+ "/" + sessionName + "_badge.png";
59+
60+ QFile customIconFile(customIconUrl);
61+ QFile iconFile(iconUrl);
62+ if (customIconFile.exists()) {
63+ return QUrl(customIconUrl);
64+ } else if (iconFile.exists()) {
65+ return QUrl(iconUrl);
66+ } else{
67+ // Search the legacy way
68+ QString path = searchDirectory.toString(QUrl::StripTrailingSlash) + "/";
69+ if (sessionName == "ubuntu" || sessionName == "ubuntu-2d") {
70+ path += "ubuntu_badge.png";
71+ } else if(
72+ sessionName == "gnome-classic" ||
73+ sessionName == "gnome-flashback-compiz" ||
74+ sessionName == "gnome-flashback-metacity" ||
75+ sessionName == "gnome-shell" ||
76+ sessionName == "gnome-wayland" ||
77+ sessionName == "gnome"
78+ ){
79+ path += "gnome_badge.png";
80+ } else if (sessionName == "plasma") {
81+ path += "kde_badge.png";
82+ } else if (sessionName == "xterm") {
83+ path += "recovery_console_badge.png";
84+ } else if (sessionName == "remote-login") {
85+ path += "remote_login_help.png";
86+ }
87+
88+ if (QFile(path).exists()) {
89+ return path;
90+ }
91+ }
92+ }
93+
94+ // FIXME make this smarter
95+ return QUrl("./graphics/session_icons/unknown_badge.png");
96+}
97+
98+QVariant SessionsModel::data(const QModelIndex& index, int role) const
99+{
100+ switch (role) {
101+ case SessionsModel::IconRole:
102+ return iconUrl(m_model->data(index, Qt::DisplayRole).toString());
103+ default:
104+ return m_model->data(index, role);
105+ }
106+}
107+
108+SessionsModel::SessionsModel(QObject* parent)
109+ : UnitySortFilterProxyModelQML(parent)
110+{
111+ // Add a custom IconRole that isn't in either of the lightdm implementations
112+ m_model = new QLightDM::SessionsModel(this);
113+ m_roleNames = m_model->roleNames();
114+ m_roleNames[IconRole] = "icon_url";
115+
116+ setModel(m_model);
117+ setSourceModel(m_model);
118+ setSortCaseSensitivity(Qt::CaseInsensitive);
119+ setSortLocaleAware(true);
120+ setSortRole(Qt::DisplayRole);
121+ sort(0);
122+}
plugins/LightDM/SessionsModel.hnew file+68
@@ -0,0 +1,68 @@
1+/*
2+ * Copyright (C) 2015 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+
18+#ifndef UNITY_SESSIONSMODEL_H
19+#define UNITY_SESSIONSMODEL_H
20+
21+#include <unitysortfilterproxymodelqml.h>
22+#include <QLightDM/SessionsModel>
23+#include <QtCore/QHash>
24+#include <QtCore/QObject>
25+#include <QtCore/QUrl>
26+
27+class SessionsModel : public UnitySortFilterProxyModelQML
28+{
29+ Q_OBJECT
30+
31+ Q_ENUMS(SessionModelRoles)
32+
33+ Q_PROPERTY(QList<QUrl> iconSearchDirectories READ iconSearchDirectories
34+ WRITE setIconSearchDirectories NOTIFY iconSearchDirectoriesChanged)
35+Q_SIGNALS:
36+ void iconSearchDirectoriesChanged();
37+
38+public:
39+ enum SessionModelRoles {
40+ /* This is tricky / ugly. Since we are ultimately chaining 3 enums together,
41+ * the _first_ value of this enum MUST be the _last_ value of
42+ * QLightDM::SessionsModel::SessionModelRoles and consquently, this must
43+ * also match the last value in the corresponding enum of the integrated lib
44+ */
45+ TypeRole = QLightDM::SessionsModel::SessionModelRoles::TypeRole,
46+ IconRole
47+ };
48+
49+ explicit SessionsModel(QObject* parent=nullptr);
50+
51+ QHash<int, QByteArray> roleNames() const override;
52+ int rowCount(const QModelIndex& parent) const override;
53+ QVariant data(const QModelIndex& index, int role) const override;
54+ QList<QUrl> iconSearchDirectories() const;
55+ Q_INVOKABLE QUrl iconUrl(const QString sessionName) const;
56+
57+ void setIconSearchDirectories(const QList<QUrl> searchDirectories);
58+private:
59+ QLightDM::SessionsModel* m_model;
60+ QHash<int, QByteArray> m_roleNames;
61+ QList<QUrl> m_iconSearchDirectories{
62+ QUrl("/usr/share/unity8/Greeter/graphics/session_icons"),
63+ QUrl("/usr/local/share/unity-greeter"),
64+ QUrl("/usr/share/unity-greeter/")};
65+
66+};
67+
68+#endif // UNITY_SESSIONSMODEL_H
plugins/IntegratedLightDM/UsersModel.cpp → plugins/LightDM/UsersModel.cpprenamed

The content is the same.

plugins/IntegratedLightDM/UsersModel.h → plugins/LightDM/UsersModel.hrenamed

The content is the same.

plugins/IntegratedLightDM/plugin.cpp → plugins/LightDM/plugin.cpprenamed+26−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -19,9 +19,11 @@
1919#include "DBusGreeter.h"
2020#include "DBusGreeterList.h"
2121#include "Greeter.h"
22+#include "SessionsModel.h"
2223#include "UsersModel.h"
2324#include <libusermetricsoutput/ColorTheme.h>
2425#include <libusermetricsoutput/UserMetrics.h>
26+#include <QLightDM/SessionsModel>
2527#include <QLightDM/UsersModel>
2628
2729#include <QAbstractItemModel>
@@ -40,6 +42,13 @@ static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
4042 return greeter;
4143}
4244
45+static QObject *sessions_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
46+{
47+ Q_UNUSED(engine)
48+ Q_UNUSED(scriptEngine)
49+ return new SessionsModel();
50+}
51+
4352static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
4453{
4554 Q_UNUSED(engine)
@@ -54,16 +63,29 @@ static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine
5463 return UserMetricsOutput::UserMetrics::getInstance();
5564}
5665
57−void IntegratedLightDMPlugin::registerTypes(const char *uri)
66+void PLUGIN_CLASSNAME::registerTypes(const char *uri)
5867{
5968 qmlRegisterType<QAbstractItemModel>();
6069 qmlRegisterType<UserMetricsOutput::ColorTheme>();
6170
62− Q_ASSERT(uri == QLatin1String("IntegratedLightDM"));
71+#if defined INTEGRATED_LIGHTDM
72+ Q_ASSERT(uri == QLatin1String("LightDM.IntegratedLightDM"));
73+ qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
74+#elif defined FULL_LIGHTDM
75+ Q_ASSERT(uri == QLatin1String("LightDM.FullLightDM"));
76+ qmlRegisterSingletonType<QLightDM::Greeter>(uri, 0, 1, "Greeter", greeter_provider);
77+#else
78+ #error No library defined in LightDM plugin
79+#endif
80+
6381 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
6482 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
65− qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
83+
84+ qmlRegisterSingletonType<SessionsModel>(uri, 0, 1, "Sessions", sessions_provider);
85+ qmlRegisterUncreatableType<SessionsModel>(uri, 0, 1, "SessionRoles", QStringLiteral("Type is not instantiable"));
86+
6687 qmlRegisterSingletonType<UsersModel>(uri, 0, 1, "Users", users_provider);
6788 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1, "UserRoles", QStringLiteral("Type is not instantiable"));
89+
6890 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1, "Infographic", infographic_provider);
6991}
plugins/IntegratedLightDM/plugin.h → plugins/LightDM/plugin.hrenamed+5−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -15,13 +15,13 @@
1515 *
1616 */
1717
18−#ifndef INTEGRATED_LIGHTDM_PLUGIN_H
19−#define INTEGRATED_LIGHTDM_PLUGIN_H
18+#ifndef LIGHTDM_PLUGIN_H
19+#define LIGHTDM_PLUGIN_H
2020
2121#include <QtQml/QQmlEngine>
2222#include <QtQml/QQmlExtensionPlugin>
2323
24−class IntegratedLightDMPlugin : public QQmlExtensionPlugin
24+class PLUGIN_CLASSNAME : public QQmlExtensionPlugin
2525{
2626 Q_OBJECT
2727 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +30,4 @@ public:
3030 void registerTypes(const char *uri) override;
3131};
3232
33−#endif /* INTEGRATED_LIGHTDM_PLUGIN_H */
33+#endif /* LIGHTDM_PLUGIN_H */
plugins/IntegratedLightDM/qmldir → plugins/LightDM/qmldirrenamed

The content is the same.

plugins/Lights/CMakeLists.txt+1
@@ -2,6 +2,7 @@ pkg_check_modules(ANDROID_HEADERS REQUIRED android-headers)
22pkg_check_modules(ANDROID_HARDWARE REQUIRED libhardware)
33
44include_directories(
5+ SYSTEM
56 ${ANDROID_HEADERS_INCLUDE_DIRS}
67)
78
plugins/Lights/Lights.qmltypesdeleted−45
@@ -1,45 +0,0 @@
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/android-hardware.h−4
@@ -15,9 +15,5 @@
1515 *
1616 */
1717
18−// The purpose of this header wrapper is just to avoid having warnings being reported on
19−// code from external header files, as we can't do anything about them.
20−#pragma GCC system_header
21−
2218#include <hardware/hardware.h>
2319#include <hardware/lights.h>
plugins/Powerd/Powerd.qmltypesdeleted−39
@@ -1,39 +0,0 @@
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− Property { name: "status"; type: "Status"; isReadonly: true }
34− Signal {
35− name: "statusChanged"
36− Parameter { name: "reason"; type: "DisplayStateChangeReason" }
37− }
38− }
39−}
plugins/SessionBroadcast/SessionBroadcast.qmltypesdeleted−19
@@ -1,19 +0,0 @@
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/UInput/UInput.qmltypesdeleted−44
@@ -1,44 +0,0 @@
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 UInput 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "UInput"
12− prototype: "QObject"
13− exports: ["UInput/UInput 0.1"]
14− exportMetaObjectRevisions: [0]
15− Enum {
16− name: "Button"
17− values: {
18− "ButtonLeft": 0,
19− "ButtonRight": 1,
20− "ButtonMiddle": 2
21− }
22− }
23− Method { name: "createMouse" }
24− Method { name: "removeMouse" }
25− Method {
26− name: "moveMouse"
27− Parameter { name: "dx"; type: "int" }
28− Parameter { name: "dy"; type: "int" }
29− }
30− Method {
31− name: "pressMouse"
32− Parameter { name: "button"; type: "Button" }
33− }
34− Method {
35− name: "releaseMouse"
36− Parameter { name: "button"; type: "Button" }
37− }
38− Method {
39− name: "scrollMouse"
40− Parameter { name: "dh"; type: "int" }
41− Parameter { name: "dv"; type: "int" }
42− }
43− }
44−}
plugins/Ubuntu/DownloadDaemonListener/CMakeLists.txt−1
@@ -1,7 +1,6 @@
11include_directories(
22 ${CMAKE_CURRENT_SOURCE_DIR}
33 ${CMAKE_CURRENT_BINARY_DIR}
4− ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
54)
65
76set(DOWNLOADDAEMONLISTENER_SOURCES
plugins/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypesdeleted−60
@@ -1,60 +0,0 @@
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/AxisVelocityCalculator.cpp+1−1
@@ -21,7 +21,7 @@
2121#include "AxisVelocityCalculator.h"
2222#include <QtCore/QElapsedTimer>
2323
24−using namespace UbuntuGestures;
24+UG_USE_NAMESPACE
2525
2626AxisVelocityCalculator::AxisVelocityCalculator(QObject *parent)
2727 : AxisVelocityCalculator(SharedTimeSource(new RealTimeSource), parent)
plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+4−4
@@ -24,7 +24,7 @@
2424#include "UbuntuGesturesQmlGlobal.h"
2525#include <stdint.h>
2626#include <QtCore/QObject>
27−#include <TimeSource>
27+#include <UbuntuGestures/private/timesource_p.h>
2828
2929/*
3030 Estimates the current velocity of a finger based on recent movement along an axis
@@ -68,7 +68,7 @@ public:
6868 /*
6969 Constructor that takes a TimeSource
7070 */
71− AxisVelocityCalculator(const UbuntuGestures::SharedTimeSource &timeSource, QObject *parent = 0);
71+ AxisVelocityCalculator(const UG_PREPEND_NAMESPACE(SharedTimeSource) &timeSource, QObject *parent = 0);
7272
7373 virtual ~AxisVelocityCalculator();
7474
@@ -90,7 +90,7 @@ public:
9090 /*
9191 Replaces the TimeSource with the given one. Useful for testing purposes.
9292 */
93− void setTimeSource(const UbuntuGestures::SharedTimeSource &timeSource);
93+ void setTimeSource(const UG_PREPEND_NAMESPACE(SharedTimeSource) &timeSource);
9494
9595 /*
9696 The minimum amount of samples needed for a velocity calculation.
@@ -138,7 +138,7 @@ private:
138138 int m_samplesRead; /* index of the oldest sample available. -1 if buffer is empty */
139139 int m_samplesWrite; /* index where the next sample will be written */
140140
141− UbuntuGestures::SharedTimeSource m_timeSource;
141+ UG_PREPEND_NAMESPACE(SharedTimeSource) m_timeSource;
142142
143143 qreal m_trackedPosition;
144144};
plugins/Ubuntu/Gestures/CMakeLists.txt+6−1
@@ -24,7 +24,11 @@ qt5_use_modules(UbuntuGesturesQml Core Quick)
2424# So that Foo.cpp can #include "Foo.moc"
2525include_directories(${CMAKE_CURRENT_BINARY_DIR})
2626
27−include_directories(${UBUNTUGESTURES_INCLUDE_DIRS})
27+include_directories(
28+ SYSTEM
29+ ${UBUNTUGESTURES_INCLUDE_DIRS}
30+ ${UBUNTUGESTURES_INCLUDEDIR}/UbuntuGestures/${UBUNTUGESTURES_VERSION}
31+)
2832
2933# There's no cmake var for v8 include path :-/ so create one
3034LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
@@ -32,6 +36,7 @@ SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/QtV8/${Qt5Core_VERSION_STRING}/QtV8)
3236
3337# DANGER! DANGER! Using Qt's private API!
3438include_directories(
39+ SYSTEM
3540 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
3641 ${Qt5Quick_INCLUDE_DIRS}
3742 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
plugins/Ubuntu/Gestures/Gestures.qmltypesdeleted−77
@@ -1,77 +0,0 @@
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− "Horizontal": 4,
38− "Vertical": 5
39− }
40− }
41− Method {
42− name: "isHorizontal"
43− type: "bool"
44− Parameter { name: "type"; type: "Direction::Type" }
45− }
46− Method {
47− name: "isVertical"
48− type: "bool"
49− Parameter { name: "type"; type: "Direction::Type" }
50− }
51− Method {
52− name: "isPositive"
53− type: "bool"
54− Parameter { name: "type"; type: "Direction::Type" }
55− }
56− }
57− Component {
58− name: "PressedOutsideNotifier"
59− defaultProperty: "data"
60− prototype: "QQuickItem"
61− exports: ["Ubuntu.Gestures/PressedOutsideNotifier 0.1"]
62− exportMetaObjectRevisions: [0]
63− Signal { name: "pressedOutside" }
64− }
65− Component {
66− name: "TouchGate"
67− defaultProperty: "data"
68− prototype: "QQuickItem"
69− exports: ["Ubuntu.Gestures/TouchGate 0.1"]
70− exportMetaObjectRevisions: [0]
71− Property { name: "targetItem"; type: "QQuickItem"; isPointer: true }
72− Signal {
73− name: "targetItemChanged"
74− Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
75− }
76− }
77−}
plugins/Ubuntu/Gestures/TouchDispatcher.cpp+1−5
@@ -19,11 +19,7 @@
1919#include <QGuiApplication>
2020#include <QScopedPointer>
2121#include <QStyleHints>
22−
23−#pragma GCC diagnostic push
24−#pragma GCC diagnostic ignored "-pedantic"
2522#include <private/qquickitem_p.h>
26−#pragma GCC diagnostic pop
2723
2824#define TOUCHDISPATCHER_DEBUG 0
2925
@@ -225,7 +221,7 @@ void TouchDispatcher::dispatchAsMouse(
225221 QEvent::Type eventType;
226222 if (touchMouse->state() == Qt::TouchPointPressed) {
227223 eventType = QEvent::MouseButtonPress;
228− } if (touchMouse->state() == Qt::TouchPointReleased) {
224+ } else if (touchMouse->state() == Qt::TouchPointReleased) {
229225 eventType = QEvent::MouseButtonRelease;
230226 m_touchMouseId = -1;
231227 } else {
plugins/Ubuntu/Gestures/TouchGate.cpp+6−4
@@ -20,16 +20,18 @@
2020#include <QDebug>
2121#include <QQuickWindow>
2222
23−#include <TouchOwnershipEvent>
24−#include <TouchRegistry>
23+#include <UbuntuGestures/private/touchownershipevent_p.h>
24+#include <UbuntuGestures/private/touchregistry_p.h>
2525
2626#if TOUCHGATE_DEBUG
2727#define ugDebug(params) qDebug().nospace() << "[TouchGate(" << (void*)this << ")] " << params
28−#include <DebugHelpers.h>
28+#include <UbuntuGestures/private/debughelpers_p.h>
2929#else // TOUCHGATE_DEBUG
3030#define ugDebug(params) ((void)0)
3131#endif // TOUCHGATE_DEBUG
3232
33+UG_USE_NAMESPACE
34+
3335TouchGate::TouchGate(QQuickItem *parent)
3436 : QQuickItem(parent)
3537{
@@ -40,7 +42,7 @@ TouchGate::TouchGate(QQuickItem *parent)
4042bool TouchGate::event(QEvent *e)
4143{
4244 if (e->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
43− touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(e));
45+ touchOwnershipEvent(static_cast<TouchOwnershipEvent*>(e));
4446 return true;
4547 } else {
4648 return QQuickItem::event(e);
plugins/Ubuntu/Gestures/TouchGate.h+3−2
@@ -19,6 +19,7 @@
1919
2020#include "UbuntuGesturesQmlGlobal.h"
2121#include "TouchDispatcher.h"
22+#include <UbuntuGestures/ubuntugesturesglobal.h>
2223
2324#include <QQuickItem>
2425#include <QList>
@@ -26,7 +27,7 @@
2627
2728#define TOUCHGATE_DEBUG 0
2829
29−class TouchOwnershipEvent;
30+UG_FORWARD_DECLARE_CLASS(TouchOwnershipEvent)
3031
3132/*
3233 Blocks the passage of events until ownership over the related touch points is granted.
@@ -82,7 +83,7 @@ private:
8283 ulong timestamp;
8384 };
8485
85− void touchOwnershipEvent(TouchOwnershipEvent *event);
86+ void touchOwnershipEvent(UG_PREPEND_NAMESPACE(TouchOwnershipEvent) *event);
8687 bool isTouchPointOwned(int touchId) const;
8788 void storeTouchEvent(QTouchDevice *device,
8889 Qt::KeyboardModifiers modifiers,
plugins/Ubuntu/Gestures/TouchGestureArea.cpp+16−16
@@ -16,9 +16,9 @@
1616
1717#include "TouchGestureArea.h"
1818
19−#include <UbuntuGestures/TouchOwnershipEvent>
20−#include <UbuntuGestures/TouchRegistry>
21−#include <UbuntuGestures/UnownedTouchEvent>
19+#include <UbuntuGestures/private/touchownershipevent_p.h>
20+#include <UbuntuGestures/private/touchregistry_p.h>
21+#include <UbuntuGestures/private/unownedtouchevent_p.h>
2222// #include "TouchRegistry.h"
2323// #include "UnownedTouchEvent.h"
2424
@@ -26,6 +26,8 @@
2626#include <QStyleHints>
2727#include <private/qquickwindow_p.h>
2828
29+UG_USE_NAMESPACE
30+
2931#define TOUCHGESTUREAREA_DEBUG 0
3032
3133// TODO - understand more about why we lose touch event releases.
@@ -135,7 +137,7 @@ TouchGestureArea::TouchGestureArea(QQuickItem* parent)
135137 , m_recognitionPeriod(50)
136138 , m_releaseRejectPeriod(100)
137139{
138− setRecognitionTimer(new UbuntuGestures::Timer(this));
140+ setRecognitionTimer(new Timer(this));
139141 m_recognitionTimer->setInterval(m_recognitionPeriod);
140142 m_recognitionTimer->setSingleShot(true);
141143}
@@ -153,10 +155,10 @@ bool TouchGestureArea::event(QEvent *event)
153155{
154156 // Process unowned touch events (handles update/release for incomplete gestures)
155157 if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
156− touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
158+ touchOwnershipEvent(static_cast<TouchOwnershipEvent*>(event));
157159 return true;
158160 } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
159− unownedTouchEvent(static_cast<UnownedTouchEvent *>(event)->touchEvent());
161+ unownedTouchEvent(static_cast<UnownedTouchEvent*>(event)->touchEvent());
160162 return true;
161163 }
162164
@@ -375,7 +377,7 @@ void TouchGestureArea::unownedTouchEvent_waitingForMoreTouches(QTouchEvent *even
375377 }
376378 }
377379
378− if (m_candidateTouches.count() == 0) {
380+ if (m_candidateTouches.isEmpty()) {
379381 setInternalStatus(InternalStatus::WaitingForTouch);
380382 }
381383}
@@ -439,7 +441,7 @@ void TouchGestureArea::unownedTouchEvent_rejected(QTouchEvent *event)
439441 }
440442 }
441443
442− if (m_watchedTouches.count() == 0) {
444+ if (m_watchedTouches.isEmpty()) {
443445 setInternalStatus(InternalStatus::WaitingForTouch);
444446 }
445447}
@@ -527,7 +529,7 @@ void TouchGestureArea::updateTouchPoints(QTouchEvent *touchEvent)
527529 if (updateable) {
528530 if (!dragging() && m_status == InternalStatus::Recognized) {
529531 bool allWantDrag = !m_liveTouchPoints.isEmpty();
530− Q_FOREACH(auto point, m_liveTouchPoints) {
532+ Q_FOREACH(const auto &point, m_liveTouchPoints) {
531533 allWantDrag &= point->dragging();
532534 }
533535 // only dragging if all points are dragging.
@@ -608,7 +610,7 @@ void TouchGestureArea::setInternalStatus(uint newStatus)
608610 }
609611}
610612
611−void TouchGestureArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
613+void TouchGestureArea::setRecognitionTimer(AbstractTimer *timer)
612614{
613615 int interval = 0;
614616 bool timerWasRunning = false;
@@ -646,11 +648,9 @@ bool TouchGestureArea::dragging() const
646648QQmlListProperty<GestureTouchPoint> TouchGestureArea::touchPoints()
647649{
648650 return QQmlListProperty<GestureTouchPoint>(this,
649− 0,
650− nullptr,
651− TouchGestureArea::touchPoint_count,
652− TouchGestureArea::touchPoint_at,
653− 0);
651+ nullptr,
652+ TouchGestureArea::touchPoint_count,
653+ TouchGestureArea::touchPoint_at);
654654}
655655
656656int TouchGestureArea::minimumTouchPoints() const
@@ -721,7 +721,7 @@ void TouchGestureArea::rejectGesture()
721721 }
722722 m_candidateTouches.clear();
723723
724− if (m_watchedTouches.count() == 0) {
724+ if (m_watchedTouches.isEmpty()) {
725725 setInternalStatus(InternalStatus::WaitingForTouch);
726726 } else {
727727 setInternalStatus(InternalStatus::Rejected);
plugins/Ubuntu/Gestures/TouchGestureArea.h+14−13
@@ -21,10 +21,11 @@
2121
2222#include <QQuickItem>
2323
24−#include <UbuntuGestures/Timer>
24+#include <UbuntuGestures/ubuntugesturesglobal.h>
25+#include <UbuntuGestures/private/timer_p.h>
2526
26−class TouchOwnershipEvent;
27−class UnownedTouchEvent;
27+UG_FORWARD_DECLARE_CLASS(TouchOwnershipEvent)
28+UG_FORWARD_DECLARE_CLASS(UnownedTouchEvent)
2829
2930class GestureTouchPoint : public QObject
3031{
@@ -105,8 +106,8 @@ private:
105106/*
106107 An area that detects multi-finger gestures.
107108
108− We can use this to detect gestures contstrained by a minimim and/or maximum number of touch points.
109− This components uses the touch registry to apply for ownership of touch points.
109+ We can use this to detect gestures constrained by a minimum and/or maximum number of touch points.
110+ This component uses the touch registry to apply for ownership of touch points.
110111 This way we can use the component in conjuntion with the directional drag area to compete for ownwership
111112 or gestures; unlike the MultiPointTouchArea.
112113 */
@@ -136,12 +137,12 @@ public:
136137 Recognized,
137138 Rejected
138139 };
139− TouchGestureArea(QQuickItem* parent = NULL);
140+ TouchGestureArea(QQuickItem* parent = nullptr);
140141 ~TouchGestureArea();
141142
142143 bool event(QEvent *e) override;
143144
144− void setRecognitionTimer(UbuntuGestures::AbstractTimer *timer);
145+ void setRecognitionTimer(UG_PREPEND_NAMESPACE(AbstractTimer) *timer);
145146
146147 int status() const;
147148 bool dragging() const;
@@ -164,10 +165,10 @@ Q_SIGNALS:
164165
165166 void touchPointsUpdated();
166167 void draggingChanged(bool dragging);
167− void minimumTouchPointsChanged(bool value);
168− void maximumTouchPointsChanged(bool value);
169− void recognitionPeriodChanged(bool value);
170− void releaseRejectPeriodChanged(bool value);
168+ void minimumTouchPointsChanged(int value);
169+ void maximumTouchPointsChanged(int value);
170+ void recognitionPeriodChanged(int value);
171+ void releaseRejectPeriodChanged(int value);
171172
172173 void pressed(const QList<QObject*>& points);
173174 void released(const QList<QObject*>& points);
@@ -194,7 +195,7 @@ private:
194195 void unownedTouchEvent_recognised(QTouchEvent *unownedTouchEvent);
195196 void unownedTouchEvent_rejected(QTouchEvent *unownedTouchEvent);
196197
197− void touchOwnershipEvent(TouchOwnershipEvent *event);
198+ void touchOwnershipEvent(UG_PREPEND_NAMESPACE(TouchOwnershipEvent) *event);
198199 void updateTouchPoints(QTouchEvent *event);
199200
200201 GestureTouchPoint* addTouchPoint(const QTouchEvent::TouchPoint *tp);
@@ -209,7 +210,7 @@ private:
209210 uint m_status;
210211 QSet<int> m_candidateTouches;
211212 QSet<int> m_watchedTouches;
212− UbuntuGestures::AbstractTimer *m_recognitionTimer;
213+ UG_PREPEND_NAMESPACE(AbstractTimer) *m_recognitionTimer;
213214
214215 bool m_dragging;
215216 QHash<int, GestureTouchPoint*> m_liveTouchPoints;
plugins/Ubuntu/Payments/Payments.qmltypesdeleted−43
@@ -1,43 +0,0 @@
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− Signal { name: "purchaseCancelled" }
41− Method { name: "start" }
42− }
43−}
plugins/Ubuntu/SystemImage/CMakeLists.txt+5
@@ -1,3 +1,7 @@
1+include_directories(
2+ ${GLIB_INCLUDE_DIRS}
3+)
4+
15set(SYSTEMIMAGE_SOURCES
26 plugin.cpp
37 SystemImage.cpp
@@ -6,5 +10,6 @@ set(SYSTEMIMAGE_SOURCES
610add_library(SystemImage MODULE ${SYSTEMIMAGE_SOURCES})
711
812qt5_use_modules(SystemImage Qml DBus Core)
13+target_link_libraries(SystemImage ${GLIB_LIBRARIES})
914
1015add_unity8_plugin(Ubuntu.SystemImage 0.1 Ubuntu/SystemImage TARGETS SystemImage)
plugins/Ubuntu/SystemImage/SystemImage.cpp+127−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -14,20 +14,142 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#include "SystemImage.h"
1817#include <QDBusConnection>
1918#include <QDBusPendingCall>
19+#include <QDBusReply>
20+#include <QDebug>
21+
22+#include <glib.h>
23+
24+#include "SystemImage.h"
25+
26+#define SYSTEMIMAGE_SERVICE QStringLiteral("com.canonical.SystemImage")
27+#define SYSTEMIMAGE_PATH QStringLiteral("/Service")
28+#define SYSTEMIMAGE_IFACE QStringLiteral("com.canonical.SystemImage")
29+
30+Q_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN, "unity8.systemimage", QtWarningMsg)
31+
32+#define DEBUG_MSG qCDebug(SYSTEMIMAGEPLUGIN).nospace().noquote() << Q_FUNC_INFO
33+#define WARNING_MSG qCWarning(SYSTEMIMAGEPLUGIN).nospace().noquote() << Q_FUNC_INFO
2034
2135SystemImage::SystemImage(QObject *parent)
2236 : QObject(parent)
2337{
38+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateAvailableStatus"),
39+ this, SLOT(onUpdateAvailableStatus(bool,bool,QString,int,QString,QString)));
40+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateDownloaded"),
41+ this, SLOT(onUpdateDownloaded()));
42+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateFailed"),
43+ this, SLOT(onUpdateFailed(int,QString)));
44+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Applied"),
45+ this, SLOT(onUpdateApplied(bool)));
46+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Rebooting"),
47+ this, SLOT(onRebooting(bool)));
48+}
49+
50+void SystemImage::checkForUpdate()
51+{
52+ DEBUG_MSG << "Checking for update";
53+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
54+ QStringLiteral("CheckForUpdate"));
55+ QDBusConnection::systemBus().asyncCall(msg);
56+}
57+
58+void SystemImage::applyUpdate()
59+{
60+ DEBUG_MSG << "Applying update";
61+ setUpdateApplying(true);
62+
63+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
64+ QStringLiteral("ApplyUpdate"));
65+ QDBusConnection::systemBus().asyncCall(msg);
2466}
2567
2668void SystemImage::factoryReset()
2769{
28− const QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("com.canonical.SystemImage"),
29− QStringLiteral("/Service"),
30− QStringLiteral("com.canonical.SystemImage"),
70+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
3171 QStringLiteral("FactoryReset"));
3272 QDBusConnection::systemBus().asyncCall(msg);
3373}
74+
75+void SystemImage::onUpdateAvailableStatus(bool is_available, bool downloading, const QString &available_version, int update_size,
76+ const QString &last_update_date, const QString &error_reason)
77+{
78+ DEBUG_MSG << "A new update is " << (is_available ? "" : "NOT") << "available";
79+
80+ if (is_available == m_updateAvailable) {
81+ return;
82+ }
83+
84+ m_updateAvailable = is_available;
85+ m_downloading = downloading;
86+ m_availableVersion = available_version;
87+ m_updateSize = formatSize(update_size);
88+ m_lastUpdateDate = last_update_date;
89+ m_errorReason = error_reason;
90+ Q_EMIT updateAvailableStatus();
91+
92+ DEBUG_MSG << "Downloading: " << downloading << ", version: " << available_version << ", last update: " << last_update_date <<
93+ ", size: " << m_updateSize;
94+}
95+
96+void SystemImage::onUpdateDownloaded()
97+{
98+ DEBUG_MSG << "Update downloaded";
99+
100+ m_downloaded = true;
101+ Q_EMIT updateDownloadedChanged();
102+}
103+
104+void SystemImage::onUpdateFailed(int /*consecutive_failure_count*/, const QString &last_reason)
105+{
106+ WARNING_MSG << "System Update failed: " << last_reason;
107+ setUpdateApplying(false);
108+}
109+
110+void SystemImage::onUpdateApplied(bool applied)
111+{
112+ DEBUG_MSG << "System Update applied with status: " << applied;
113+ setUpdateApplying(false);
114+ if (applied) {
115+ resetUpdateStatus();
116+ Q_EMIT updateAvailableStatus();
117+ }
118+}
119+
120+void SystemImage::onRebooting(bool status)
121+{
122+ setUpdateApplying(false);
123+ DEBUG_MSG << "Rebooting: " << status;
124+}
125+
126+void SystemImage::setUpdateApplying(bool status)
127+{
128+ if (status != m_updateApplying) {
129+ m_updateApplying = status;
130+ Q_EMIT updateApplyingChanged();
131+ }
132+}
133+
134+void SystemImage::resetUpdateStatus()
135+{
136+ m_updateAvailable = false;
137+ m_updateApplying = false;
138+ m_downloading = false;
139+ m_downloaded = false;
140+ m_availableVersion.clear();
141+ m_updateSize.clear();
142+ m_lastUpdateDate.clear();
143+ m_errorReason.clear();
144+}
145+
146+QString SystemImage::formatSize(quint64 size) const
147+{
148+ guint64 g_size = size;
149+
150+ gchar * formatted_size = g_format_size(g_size);
151+ QString q_formatted_size = QString::fromLocal8Bit(formatted_size);
152+ g_free(formatted_size);
153+
154+ return q_formatted_size;
155+}
plugins/Ubuntu/SystemImage/SystemImage.h+52−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -18,17 +18,67 @@
1818#define SYSTEMIMAGE_H
1919
2020#include <QObject>
21+#include <QLoggingCategory>
22+
23+Q_DECLARE_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN)
2124
2225class SystemImage : public QObject
2326{
2427 Q_OBJECT
2528 Q_DISABLE_COPY(SystemImage)
2629
30+ Q_PROPERTY(bool updateAvailable READ updateAvailable NOTIFY updateAvailableStatus)
31+ Q_PROPERTY(bool updateDownloading READ updateDownloading NOTIFY updateAvailableStatus)
32+ Q_PROPERTY(QString availableVersion READ availableVersion NOTIFY updateAvailableStatus)
33+ Q_PROPERTY(QString updateSize READ updateSize NOTIFY updateAvailableStatus)
34+ Q_PROPERTY(bool updateApplying READ updateApplying NOTIFY updateApplyingChanged)
35+ Q_PROPERTY(bool updateDownloaded READ updateDownloaded NOTIFY updateDownloadedChanged)
36+
2737public:
28− explicit SystemImage(QObject *parent = 0);
38+ explicit SystemImage(QObject *parent = nullptr);
2939 ~SystemImage() = default;
3040
41+ bool updateAvailable() const { return m_updateAvailable; }
42+ bool updateDownloading() const { return m_downloading; }
43+ QString availableVersion() const { return m_availableVersion; }
44+ QString updateSize() const { return m_updateSize; }
45+ bool updateApplying() const { return m_updateApplying; }
46+ bool updateDownloaded() const { return m_downloaded; }
47+
48+public Q_SLOTS:
49+ Q_INVOKABLE void checkForUpdate();
50+ Q_INVOKABLE void applyUpdate();
3151 Q_INVOKABLE void factoryReset();
52+
53+private Q_SLOTS:
54+ void onUpdateAvailableStatus(bool is_available, bool updateDownloading, const QString &available_version,
55+ int update_size, const QString &last_update_date, const QString &error_reason);
56+ void onUpdateDownloaded();
57+ void onUpdateFailed(int consecutive_failure_count, const QString & last_reason);
58+ void onUpdateApplied(bool applied);
59+ void onRebooting(bool status);
60+
61+Q_SIGNALS:
62+ void updateAvailableStatus();
63+ void updateDownloadedChanged();
64+ void updateApplyingChanged();
65+
66+private Q_SLOTS:
67+ void setUpdateApplying(bool status);
68+
69+private:
70+ void resetUpdateStatus();
71+ QString formatSize(quint64 size) const;
72+
73+private:
74+ bool m_updateAvailable = false;
75+ bool m_updateApplying = false;
76+ bool m_downloading = false;
77+ bool m_downloaded = false;
78+ QString m_availableVersion;
79+ QString m_updateSize;
80+ QString m_lastUpdateDate;
81+ QString m_errorReason;
3282};
3383
3484#endif // SYSTEMIMAGE_H
plugins/Ubuntu/SystemImage/SystemImage.qmltypesdeleted−19
@@ -1,19 +0,0 @@
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.SystemImage 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "SystemImage"
12− prototype: "QObject"
13− exports: ["Ubuntu.SystemImage/SystemImage 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Method { name: "factoryReset" }
18− }
19−}
plugins/Ubuntu/SystemImage/plugin.cpp+3−9
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -19,16 +19,10 @@
1919
2020#include <QtQml>
2121
22−static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
23−{
24− Q_UNUSED(engine)
25− Q_UNUSED(scriptEngine)
26− return new SystemImage();
27−}
28−
2922void BackendPlugin::registerTypes(const char *uri)
3023{
3124 Q_ASSERT(uri == QLatin1String("Ubuntu.SystemImage"));
3225
33− qmlRegisterSingletonType<SystemImage>(uri, 0, 1, "SystemImage", service_provider);
26+ qmlRegisterSingletonType<SystemImage>(uri, 0, 1, "SystemImage",
27+ [](QQmlEngine*, QJSEngine*) -> QObject* { return new SystemImage; });
3428}
plugins/Ubuntu/SystemImage/plugin.h+1−1
@@ -22,7 +22,7 @@
2222class BackendPlugin : public QQmlExtensionPlugin
2323{
2424 Q_OBJECT
25− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
2626
2727public:
2828 void registerTypes(const char *uri) override;
plugins/Unity/Connectivity/Connectivity.qmltypesdeleted−19
@@ -1,19 +0,0 @@
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.Connectivity 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "Connectivity"
12− prototype: "QObject"
13− exports: ["Unity.Connectivity/Connectivity 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Method { name: "unlockAllModems" }
18− }
19−}
plugins/Unity/DashCommunicator/DashCommunicator.qmltypesdeleted−47
@@ -1,47 +0,0 @@
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.DashCommunicator 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "DashCommunicator"
12− prototype: "QThread"
13− exports: ["Unity.DashCommunicator/DashCommunicator 0.1"]
14− exportMetaObjectRevisions: [0]
15− Method {
16− name: "setCurrentScope"
17− Parameter { name: "index"; type: "int" }
18− Parameter { name: "animate"; type: "bool" }
19− Parameter { name: "isSwipe"; type: "bool" }
20− }
21− }
22− Component {
23− name: "DashCommunicatorService"
24− prototype: "QObject"
25− exports: ["Unity.DashCommunicator/DashCommunicatorService 0.1"]
26− exportMetaObjectRevisions: [0]
27− Signal {
28− name: "setCurrentScopeRequested"
29− Parameter { name: "index"; type: "int" }
30− Parameter { name: "animate"; type: "bool" }
31− Parameter { name: "isSwipe"; type: "bool" }
32− }
33− }
34− Component {
35− name: "QThread"
36− prototype: "QObject"
37− Signal { name: "started" }
38− Signal { name: "finished" }
39− Method {
40− name: "start"
41− Parameter { type: "Priority" }
42− }
43− Method { name: "start" }
44− Method { name: "terminate" }
45− Method { name: "quit" }
46− }
47−}
plugins/Unity/Indicators/CMakeLists.txt+4
@@ -6,6 +6,10 @@ find_package(Qt5Quick REQUIRED)
66include_directories(
77 ${CMAKE_CURRENT_SOURCE_DIR}
88 ${CMAKE_CURRENT_BINARY_DIR}
9+)
10+
11+include_directories(
12+ SYSTEM
913 ${GLIB_INCLUDE_DIRS}
1014 ${GIO_INCLUDE_DIRS}
1115 ${QMENUMODEL_INCLUDE_DIRS}
plugins/Unity/Indicators/Indicators.qmltypesdeleted−264
@@ -1,264 +0,0 @@
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: "ActionRootState"
12− prototype: "RootStateObject"
13− exports: ["Unity.Indicators/ActionRootState 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "actionGroup"; type: "QDBusActionGroup"; isPointer: true }
16− Property { name: "actionName"; type: "string" }
17− }
18− Component {
19− name: "ActionState"
20− prototype: "QObject"
21− exports: ["Unity.Indicators/ActionState 0.1"]
22− isCreatable: false
23− exportMetaObjectRevisions: [0]
24− Enum {
25− name: "ActionStates"
26− values: {
27− "Label": 0,
28− "IconSource": 1,
29− "AccessableName": 2,
30− "Visible": 3
31− }
32− }
33− }
34− Component {
35− name: "FlatMenuProxyModelRole"
36− prototype: "QObject"
37− exports: ["Unity.Indicators/FlatMenuProxyModelRole 0.1"]
38− isCreatable: false
39− exportMetaObjectRevisions: [0]
40− Enum {
41− name: "Roles"
42− values: {
43− "Action": 1,
44− "Label": 2,
45− "Extra": 3,
46− "Depth": 4,
47− "hasSection": 5,
48− "hasSubMenu": 6
49− }
50− }
51− }
52− Component {
53− name: "IndicatorsManager"
54− prototype: "QObject"
55− exports: ["Unity.Indicators/IndicatorsManager 0.1"]
56− exportMetaObjectRevisions: [0]
57− Property { name: "loaded"; type: "bool"; isReadonly: true }
58− Property { name: "profile"; type: "string" }
59− Signal {
60− name: "loadedChanged"
61− Parameter { type: "bool" }
62− }
63− Signal {
64− name: "profileChanged"
65− Parameter { type: "string" }
66− }
67− Signal {
68− name: "indicatorLoaded"
69− Parameter { name: "indicator_name"; type: "string" }
70− }
71− Signal {
72− name: "indicatorAboutToBeUnloaded"
73− Parameter { name: "indicator_name"; type: "string" }
74− }
75− Method { name: "load" }
76− Method { name: "unload" }
77− }
78− Component {
79− name: "IndicatorsModel"
80− prototype: "QAbstractListModel"
81− exports: ["Unity.Indicators/IndicatorsModel 0.1"]
82− exportMetaObjectRevisions: [0]
83− Property { name: "count"; type: "int"; isReadonly: true }
84− Property { name: "profile"; type: "string" }
85− Signal {
86− name: "indicatorDataChanged"
87− Parameter { name: "data"; type: "QVariant" }
88− }
89− Method { name: "load" }
90− Method { name: "unload" }
91− Method {
92− name: "data"
93− type: "QVariant"
94− Parameter { name: "row"; type: "int" }
95− Parameter { name: "role"; type: "int" }
96− }
97− }
98− Component {
99− name: "IndicatorsModelRole"
100− prototype: "QObject"
101− exports: ["Unity.Indicators/IndicatorsModelRole 0.1"]
102− isCreatable: false
103− exportMetaObjectRevisions: [0]
104− Enum {
105− name: "Roles"
106− values: {
107− "Identifier": 0,
108− "Position": 1,
109− "IndicatorProperties": 2
110− }
111− }
112− }
113− Component {
114− name: "MenuContentActivator"
115− prototype: "QObject"
116− exports: ["Unity.Indicators/MenuContentActivator 0.1"]
117− exportMetaObjectRevisions: [0]
118− Property { name: "baseIndex"; type: "int" }
119− Property { name: "running"; type: "bool" }
120− Property { name: "count"; type: "int" }
121− Property { name: "content"; type: "MenuContentState"; isList: true; isReadonly: true }
122− Signal {
123− name: "baseIndexChanged"
124− Parameter { name: "baseIndex"; type: "int" }
125− }
126− Signal {
127− name: "deltaChanged"
128− Parameter { name: "delta"; type: "int" }
129− }
130− Signal {
131− name: "runningChanged"
132− Parameter { name: "running"; type: "bool" }
133− }
134− Signal {
135− name: "countChanged"
136− Parameter { name: "count"; type: "int" }
137− }
138− Method { name: "restart" }
139− Method { name: "stop" }
140− Method { name: "clear" }
141− Method {
142− name: "isMenuContentActive"
143− type: "bool"
144− Parameter { name: "index"; type: "int" }
145− }
146− }
147− Component {
148− name: "MenuContentState"
149− prototype: "QObject"
150− exports: ["Unity.Indicators/MenuContentState 0.1"]
151− isCreatable: false
152− exportMetaObjectRevisions: [0]
153− Property { name: "active"; type: "bool"; isReadonly: true }
154− }
155− Component {
156− name: "ModelActionRootState"
157− prototype: "RootStateObject"
158− exports: ["Unity.Indicators/ModelActionRootState 0.1"]
159− exportMetaObjectRevisions: [0]
160− Property { name: "menu"; type: "UnityMenuModel"; isPointer: true }
161− Signal { name: "indexChanged" }
162− }
163− Component {
164− name: "ModelPrinter"
165− prototype: "QObject"
166− exports: ["Unity.Indicators/ModelPrinter 0.1"]
167− exportMetaObjectRevisions: [0]
168− Property { name: "model"; type: "UnityMenuModel"; isPointer: true }
169− Property { name: "text"; type: "string"; isReadonly: true }
170− Method { name: "text"; type: "string" }
171− }
172− Component {
173− name: "NetworkActionState"
174− prototype: "QObject"
175− exports: ["Unity.Indicators/NetworkActionState 0.1"]
176− isCreatable: false
177− exportMetaObjectRevisions: [0]
178− Enum {
179− name: "NetworkActionStates"
180− values: {
181− "Connection": 1,
182− "SignalStrength": 2
183− }
184− }
185− }
186− Component {
187− name: "NetworkConnection"
188− prototype: "QObject"
189− exports: ["Unity.Indicators/NetworkConnection 0.1"]
190− isCreatable: false
191− exportMetaObjectRevisions: [0]
192− Enum {
193− name: "NetworkConnectionStates"
194− values: {
195− "Initial": 0,
196− "Activating": 1,
197− "Activated": 2,
198− "Deactivating": 3
199− }
200− }
201− }
202− Component {
203− name: "RootStateObject"
204− prototype: "QObject"
205− Property { name: "valid"; type: "bool"; isReadonly: true }
206− Property { name: "title"; type: "string"; isReadonly: true }
207− Property { name: "leftLabel"; type: "string"; isReadonly: true }
208− Property { name: "rightLabel"; type: "string"; isReadonly: true }
209− Property { name: "icons"; type: "QStringList"; isReadonly: true }
210− Property { name: "accessibleName"; type: "string"; isReadonly: true }
211− Property { name: "indicatorVisible"; type: "bool"; isReadonly: true }
212− Signal { name: "updated" }
213− }
214− Component {
215− name: "SharedUnityMenuModel"
216− prototype: "QObject"
217− exports: ["Unity.Indicators/SharedUnityMenuModel 0.1"]
218− exportMetaObjectRevisions: [0]
219− Property { name: "busName"; type: "QByteArray" }
220− Property { name: "menuObjectPath"; type: "QByteArray" }
221− Property { name: "actions"; type: "QVariantMap" }
222− Property { name: "model"; type: "UnityMenuModel"; isReadonly: true; isPointer: true }
223− }
224− Component {
225− name: "UnityMenuModelCache"
226− prototype: "QObject"
227− exports: ["Unity.Indicators/UnityMenuModelCache 0.1"]
228− isCreatable: false
229− isSingleton: true
230− exportMetaObjectRevisions: [0]
231− Method {
232− name: "contains"
233− type: "bool"
234− Parameter { name: "path"; type: "QByteArray" }
235− }
236− }
237− Component {
238− name: "UnityMenuModelStack"
239− prototype: "QObject"
240− exports: ["Unity.Indicators/UnityMenuModelStack 0.1"]
241− exportMetaObjectRevisions: [0]
242− Property { name: "head"; type: "UnityMenuModel"; isPointer: true }
243− Property { name: "tail"; type: "UnityMenuModel"; isReadonly: true; isPointer: true }
244− Property { name: "count"; type: "int"; isReadonly: true }
245− Signal {
246− name: "headChanged"
247− Parameter { name: "head"; type: "UnityMenuModel"; isPointer: true }
248− }
249− Signal {
250− name: "tailChanged"
251− Parameter { name: "tail"; type: "UnityMenuModel"; isPointer: true }
252− }
253− Signal {
254− name: "countChanged"
255− Parameter { name: "count"; type: "int" }
256− }
257− Method {
258− name: "push"
259− Parameter { name: "model"; type: "UnityMenuModel"; isPointer: true }
260− Parameter { name: "menuIndex"; type: "int" }
261− }
262− Method { name: "pop"; type: "UnityMenuModel*" }
263− }
264−}
plugins/Unity/Indicators/actionrootstate.cpp+1−1
@@ -44,7 +44,7 @@ void ActionRootState::setActionGroup(QDBusActionGroup *actionGroup)
4444 connect(m_actionGroup, &QDBusActionGroup::statusChanged, this, [&](bool) { updateActionState(); });
4545 connect(m_actionGroup, &QDBusActionGroup::actionAppear, this, [&](const QString&) { updateActionState(); });
4646 connect(m_actionGroup, &QDBusActionGroup::actionVanish, this, [&](const QString&) { updateActionState(); });
47− connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](QVariant) { updateActionState(); });
47+ connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](const QVariant&) { updateActionState(); });
4848
4949 connect(m_actionGroup, &QObject::destroyed, this, [&](QObject*) { updateActionState(); });
5050 }
plugins/Unity/Indicators/indicatorsmanager.cpp+4−6
@@ -114,10 +114,6 @@ void IndicatorsManager::loadFile(const QFileInfo& file_info)
114114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
115115 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
116116
117− if (m_platform.isPC() && name == QLatin1String("indicator-keyboard")) {
118− return; // convergence: skip this indicator until it works in Mir
119− }
120−
121117 auto iter = m_indicatorsData.constFind(name);
122118 if (iter != m_indicatorsData.constEnd())
123119 {
@@ -285,13 +281,15 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
285281
286282 // convergence:
287283 // 1) enable session indicator
288− // 2) on a PC, switch the battery/power indicator to desktop mode,
284+ // 2) enable keyboard indicator
285+ // 3) on a PC, switch the battery/power indicator to desktop mode,
289286 // can't control brightness for now and phone-on-desktop broken (FIXME)
290287 //
291288 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
292289 if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
290+ || new_indicator->identifier() == QStringLiteral("indicator-keyboard")
293291 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
294− new_indicator->setProfile(QStringLiteral("desktop"));
292+ new_indicator->setProfile(QString(m_profile).replace(QStringLiteral("phone"), QStringLiteral("desktop")));
295293 } else {
296294 new_indicator->setProfile(m_profile);
297295 }
plugins/Unity/InputInfo/InputInfo.qmltypesdeleted−71
@@ -1,71 +0,0 @@
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.InputInfo 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "QDeclarativeInputDeviceModel"
12− prototype: "QAbstractListModel"
13− exports: ["Unity.InputInfo/InputDeviceModel 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "deviceFilter"; type: "QInputDevice::InputType" }
16− Property { name: "count"; type: "int"; isReadonly: true }
17− Signal {
18− name: "deviceAdded"
19− Parameter { name: "devicePath"; type: "string" }
20− }
21− Signal {
22− name: "deviceRemoved"
23− Parameter { name: "devicePath"; type: "string" }
24− }
25− Signal {
26− name: "deviceFilterChanged"
27− Parameter { name: "filter"; type: "QInputDevice::InputType" }
28− }
29− Method { name: "updateDeviceList" }
30− Method {
31− name: "indexOf"
32− type: "int"
33− Parameter { name: "devicePath"; type: "string" }
34− }
35− Method {
36− name: "get"
37− type: "QInputDevice*"
38− Parameter { name: "index"; type: "int" }
39− }
40− }
41− Component {
42− name: "QInputDevice"
43− prototype: "QObject"
44− exports: ["Unity.InputInfo/InputInfo 0.1"]
45− exportMetaObjectRevisions: [0]
46− Enum {
47− name: "InputType"
48− values: {
49− "Unknown": 0,
50− "Button": 1,
51− "Mouse": 2,
52− "TouchPad": 4,
53− "TouchScreen": 8,
54− "Keyboard": 16,
55− "Switch": 32
56− }
57− }
58− Enum {
59− name: "InputTypeFlags"
60− values: {
61− "Unknown": 0,
62− "Button": 1,
63− "Mouse": 2,
64− "TouchPad": 4,
65− "TouchScreen": 8,
66− "Keyboard": 16,
67− "Switch": 32
68− }
69− }
70− }
71−}
plugins/Unity/InputInfo/linux/qinputdeviceinfo_linux.cpp+7−2
@@ -44,6 +44,7 @@
4444#include <libudev.h>
4545#include <libevdev/libevdev.h>
4646#include <fcntl.h>
47+#include <unistd.h>
4748#include <QDebug>
4849#include <QSocketNotifier>
4950#include <QTimer>
@@ -52,6 +53,7 @@
5253QInputDeviceManagerPrivate::QInputDeviceManagerPrivate(QObject *parent) :
5354 QObject(parent),
5455 currentFilter(QInputDevice::Unknown),
56+ udevMonitor(0),
5557 udevice(0)
5658{
5759 QTimer::singleShot(250,this,SLOT(init()));
@@ -83,9 +85,9 @@ void QInputDeviceManagerPrivate::init()
8385 udev_enumerate_add_match_subsystem(enumerate, subsystem.toLatin1());
8486
8587 udev_monitor_enable_receiving(udevMonitor);
86− notifierFd = udev_monitor_get_fd(udevMonitor);
88+ int notifierFd = udev_monitor_get_fd(udevMonitor);
8789
88− notifier = new QSocketNotifier(notifierFd, QSocketNotifier::Read, this);
90+ QSocketNotifier *notifier = new QSocketNotifier(notifierFd, QSocketNotifier::Read, this);
8991 connect(notifier, SIGNAL(activated(int)), this, SLOT(onUDevChanges()));
9092
9193 udev_enumerate_scan_devices(enumerate);
@@ -168,6 +170,7 @@ QInputDevice *QInputDeviceManagerPrivate::addDevice(struct udev_device *udev)
168170 rc = libevdev_new_from_fd(fd, &dev);
169171 if (rc < 0) {
170172 qWarning() << "Failed to init libevdev ("<< strerror(-rc) << ")";
173+ close(fd);
171174 return Q_NULLPTR;
172175 }
173176
@@ -195,6 +198,8 @@ QInputDevice *QInputDeviceManagerPrivate::addDevice(struct udev_device *udev)
195198 }
196199 }
197200
201+ libevdev_free(dev);
202+ close(fd);
198203 return inputDevice;
199204}
200205
plugins/Unity/InputInfo/linux/qinputdeviceinfo_linux_p.h−2
@@ -83,8 +83,6 @@ private:
8383
8484 QInputDevice *addDevice(const QString &path);
8585 void removeDevice(const QString &path);
86− QSocketNotifier *notifier;
87− int notifierFd;
8886 struct udev_monitor *udevMonitor;
8987 QInputDevice::InputTypeFlags getInputTypeFlags(struct udev_device *);
9088 struct udev *udevice;
plugins/Unity/Launcher/CMakeLists.txt+3−1
@@ -1,4 +1,4 @@
1−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=7)
1+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=9)
22pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
33
44add_definitions(-DSM_BUSNAME=systemBus)
@@ -23,6 +23,8 @@ set(QMLLAUNCHERPLUGIN_SRC
2323 asadapter.cpp
2424 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
2525 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
26+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
27+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
2628 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
2729 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
2830 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
plugins/Unity/Launcher/Launcher.qmltypesdeleted−182
@@ -1,182 +0,0 @@
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− }
17− Component {
18− name: "LauncherModel"
19− prototype: "unity::shell::launcher::LauncherModelInterface"
20− exports: ["Unity.Launcher/LauncherModel 0.1"]
21− isCreatable: false
22− isSingleton: true
23− exportMetaObjectRevisions: [0]
24− Method {
25− name: "requestRemove"
26− Parameter { name: "appId"; type: "string" }
27− }
28− Method { name: "refresh" }
29− Method {
30− name: "get"
31− type: "unity::shell::launcher::LauncherItemInterface*"
32− Parameter { name: "index"; type: "int" }
33− }
34− Method {
35− name: "move"
36− Parameter { name: "oldIndex"; type: "int" }
37− Parameter { name: "newIndex"; type: "int" }
38− }
39− Method {
40− name: "pin"
41− Parameter { name: "appId"; type: "string" }
42− Parameter { name: "index"; type: "int" }
43− }
44− Method {
45− name: "pin"
46− Parameter { name: "appId"; type: "string" }
47− }
48− Method {
49− name: "quickListActionInvoked"
50− Parameter { name: "appId"; type: "string" }
51− Parameter { name: "actionIndex"; type: "int" }
52− }
53− Method {
54− name: "setUser"
55− Parameter { name: "username"; type: "string" }
56− }
57− Method {
58− name: "getUrlForAppId"
59− type: "string"
60− Parameter { name: "appId"; type: "string" }
61− }
62− }
63− Component {
64− name: "QuickListModel"
65− prototype: "unity::shell::launcher::QuickListModelInterface"
66− exports: ["Unity.Launcher/QuickListModel 0.1"]
67− isCreatable: false
68− exportMetaObjectRevisions: [0]
69− }
70− Component {
71− name: "unity::shell::launcher::LauncherItemInterface"
72− prototype: "QObject"
73− exports: ["Unity.Launcher/LauncherItemInterface 0.1"]
74− isCreatable: false
75− exportMetaObjectRevisions: [0]
76− Property { name: "appId"; type: "string"; isReadonly: true }
77− Property { name: "name"; type: "string"; isReadonly: true }
78− Property { name: "icon"; type: "string"; isReadonly: true }
79− Property { name: "pinned"; type: "bool"; isReadonly: true }
80− Property { name: "running"; type: "bool"; isReadonly: true }
81− Property { name: "recent"; type: "bool"; isReadonly: true }
82− Property { name: "progress"; type: "int"; isReadonly: true }
83− Property { name: "count"; type: "int"; isReadonly: true }
84− Property { name: "countVisible"; type: "bool"; isReadonly: true }
85− Property { name: "focused"; type: "bool"; isReadonly: true }
86− Property {
87− name: "quickList"
88− type: "unity::shell::launcher::QuickListModelInterface"
89− isReadonly: true
90− isPointer: true
91− }
92− Signal {
93− name: "nameChanged"
94− Parameter { name: "name"; type: "string" }
95− }
96− Signal {
97− name: "iconChanged"
98− Parameter { name: "icon"; type: "string" }
99− }
100− Signal {
101− name: "pinnedChanged"
102− Parameter { name: "pinned"; type: "bool" }
103− }
104− Signal {
105− name: "runningChanged"
106− Parameter { name: "running"; type: "bool" }
107− }
108− Signal {
109− name: "recentChanged"
110− Parameter { name: "running"; type: "bool" }
111− }
112− Signal {
113− name: "progressChanged"
114− Parameter { name: "progress"; type: "int" }
115− }
116− Signal {
117− name: "countChanged"
118− Parameter { name: "count"; type: "int" }
119− }
120− Signal {
121− name: "countVisibleChanged"
122− Parameter { name: "countVisible"; type: "bool" }
123− }
124− Signal {
125− name: "focusedChanged"
126− Parameter { name: "focused"; type: "bool" }
127− }
128− }
129− Component {
130− name: "unity::shell::launcher::LauncherModelInterface"
131− prototype: "QAbstractListModel"
132− exports: ["Unity.Launcher/LauncherModelInterface 0.1"]
133− isCreatable: false
134− exportMetaObjectRevisions: [0]
135− Property {
136− name: "applicationManager"
137− type: "unity::shell::application::ApplicationManagerInterface"
138− isPointer: true
139− }
140− Property { name: "onlyPinned"; type: "bool" }
141− Signal { name: "hint" }
142− Method {
143− name: "move"
144− Parameter { name: "oldIndex"; type: "int" }
145− Parameter { name: "newIndex"; type: "int" }
146− }
147− Method {
148− name: "get"
149− type: "unity::shell::launcher::LauncherItemInterface*"
150− Parameter { name: "index"; type: "int" }
151− }
152− Method {
153− name: "pin"
154− Parameter { name: "appId"; type: "string" }
155− Parameter { name: "index"; type: "int" }
156− }
157− Method {
158− name: "pin"
159− Parameter { name: "appId"; type: "string" }
160− }
161− Method {
162− name: "requestRemove"
163− Parameter { name: "appId"; type: "string" }
164− }
165− Method {
166− name: "quickListActionInvoked"
167− Parameter { name: "appId"; type: "string" }
168− Parameter { name: "actionIndex"; type: "int" }
169− }
170− Method {
171− name: "setUser"
172− Parameter { name: "username"; type: "string" }
173− }
174− }
175− Component {
176− name: "unity::shell::launcher::QuickListModelInterface"
177− prototype: "QAbstractListModel"
178− exports: ["Unity.Launcher/QuickListInterface 0.1"]
179− isCreatable: false
180− exportMetaObjectRevisions: [0]
181− }
182−}
plugins/Unity/Launcher/launcheritem.cpp+14−9
@@ -35,6 +35,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
3535 m_countVisible(false),
3636 m_focused(false),
3737 m_alerting(false),
38+ m_surfaceCount(0),
3839 m_quickList(new QuickListModel(this))
3940{
4041 Q_ASSERT(parent != nullptr);
@@ -162,9 +163,6 @@ void LauncherItem::setCount(int count)
162163 if (m_count != count) {
163164 m_count = count;
164165 Q_EMIT countChanged(count);
165− if (m_countVisible) {
166− setAlerting(true);
167− }
168166 }
169167}
170168
@@ -178,9 +176,6 @@ void LauncherItem::setCountVisible(bool countVisible)
178176 if (m_countVisible != countVisible) {
179177 m_countVisible = countVisible;
180178 Q_EMIT countVisibleChanged(countVisible);
181− if (countVisible) {
182− setAlerting(true);
183− }
184179 }
185180}
186181
@@ -193,9 +188,6 @@ void LauncherItem::setFocused(bool focused)
193188{
194189 if (m_focused != focused) {
195190 m_focused = focused;
196− if (focused) {
197− setAlerting(false);
198− }
199191 Q_EMIT focusedChanged(focused);
200192 }
201193}
@@ -213,6 +205,19 @@ void LauncherItem::setAlerting(bool alerting)
213205 }
214206}
215207
208+int LauncherItem::surfaceCount() const
209+{
210+ return m_surfaceCount;
211+}
212+
213+void LauncherItem::setSurfaceCount(int surfaceCount)
214+{
215+ if (m_surfaceCount != surfaceCount) {
216+ m_surfaceCount = surfaceCount;
217+ Q_EMIT surfaceCountChanged(surfaceCount);
218+ }
219+}
220+
216221unity::shell::launcher::QuickListModelInterface *LauncherItem::quickList() const
217222{
218223 return m_quickList;
plugins/Unity/Launcher/launcheritem.h+3
@@ -45,6 +45,7 @@ public:
4545 bool countVisible() const override;
4646 bool focused() const override;
4747 bool alerting() const override;
48+ int surfaceCount() const override;
4849
4950 unity::shell::launcher::QuickListModelInterface *quickList() const override;
5051
@@ -59,6 +60,7 @@ private:
5960 void setCountVisible(bool countVisible);
6061 void setFocused(bool focused);
6162 void setAlerting(bool alerting);
63+ void setSurfaceCount(int surfaceCount);
6264
6365private:
6466 QString m_appId;
@@ -72,6 +74,7 @@ private:
7274 bool m_countVisible;
7375 bool m_focused;
7476 bool m_alerting;
77+ int m_surfaceCount;
7578 QuickListModel *m_quickList;
7679 QuickListEntry m_quitAction;
7780
plugins/Unity/Launcher/launchermodel.cpp+58−26
@@ -25,6 +25,7 @@
2525#include "asadapter.h"
2626
2727#include <unity/shell/application/ApplicationInfoInterface.h>
28+#include <unity/shell/application/MirSurfaceListInterface.h>
2829
2930#include <QDesktopServices>
3031#include <QDebug>
@@ -88,6 +89,8 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
8889 return item->alerting();
8990 case RoleRunning:
9091 return item->running();
92+ case RoleSurfaceCount:
93+ return item->surfaceCount();
9194 default:
9295 qWarning() << Q_FUNC_INFO << "missing role, implement me";
9396 return QVariant();
@@ -96,18 +99,6 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
9699 return QVariant();
97100}
98101
99−void LauncherModel::setAlerting(const QString &appId, bool alerting) {
100− int index = findApplication(appId);
101− if (index >= 0) {
102− QModelIndex modelIndex = this->index(index);
103− LauncherItem *item = m_list.at(index);
104− if (!item->focused()) {
105− item->setAlerting(alerting);
106− Q_EMIT dataChanged(modelIndex, modelIndex, {RoleAlerting});
107− }
108− }
109−}
110−
111102unity::shell::launcher::LauncherItemInterface *LauncherModel::get(int index) const
112103{
113104 if (index < 0 || index >= m_list.count()) {
@@ -358,11 +349,13 @@ void LauncherModel::countChanged(const QString &appId, int count)
358349 if (idx >= 0) {
359350 LauncherItem *item = m_list.at(idx);
360351 item->setCount(count);
361− if (item->countVisible()) {
362− setAlerting(item->appId(), true);
352+ QVector<int> changedRoles = {RoleCount};
353+ if (item->countVisible() && !item->alerting() && !item->focused()) {
354+ changedRoles << RoleAlerting;
355+ item->setAlerting(true);
363356 }
364357 m_asAdapter->syncItems(m_list);
365− Q_EMIT dataChanged(index(idx), index(idx), {RoleCount});
358+ Q_EMIT dataChanged(index(idx), index(idx), changedRoles);
366359 }
367360}
368361
@@ -372,10 +365,12 @@ void LauncherModel::countVisibleChanged(const QString &appId, bool countVisible)
372365 if (idx >= 0) {
373366 LauncherItem *item = m_list.at(idx);
374367 item->setCountVisible(countVisible);
375− if (countVisible) {
376− setAlerting(item->appId(), true);
368+ QVector<int> changedRoles = {RoleCountVisible};
369+ if (countVisible && !item->alerting() && !item->focused()) {
370+ changedRoles << RoleAlerting;
371+ item->setAlerting(true);
377372 }
378− Q_EMIT dataChanged(index(idx), index(idx), {RoleCountVisible});
373+ Q_EMIT dataChanged(index(idx), index(idx), changedRoles);
379374
380375 // If countVisible goes to false, and the item is neither pinned nor recent we can drop it
381376 if (!countVisible && !item->pinned() && !item->recent()) {
@@ -498,8 +493,10 @@ void LauncherModel::alert(const QString &appId)
498493 int idx = findApplication(appId);
499494 if (idx >= 0) {
500495 LauncherItem *item = m_list.at(idx);
501− setAlerting(item->appId(), true);
502− Q_EMIT dataChanged(index(idx), index(idx), {RoleAlerting});
496+ if (!item->focused() && !item->alerting()) {
497+ item->setAlerting(true);
498+ Q_EMIT dataChanged(index(idx), index(idx), {RoleAlerting});
499+ }
503500 }
504501}
505502
@@ -525,28 +522,50 @@ void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
525522 item->setRecent(true);
526523 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRecent});
527524 }
525+ if (item->surfaceCount() != app->surfaceCount()) {
526+ item->setSurfaceCount(app->surfaceCount());
527+ Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleSurfaceCount});
528+ }
529+
528530 item->setRunning(true);
529531 } else {
530532 LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this);
531533 item->setRecent(true);
532534 item->setRunning(true);
533535 item->setFocused(app->focused());
534−
536+ item->setSurfaceCount(app->surfaceCount());
535537 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
536538 m_list.append(item);
537539 endInsertRows();
538540 }
541+ connect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged);
539542 m_asAdapter->syncItems(m_list);
540543 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRunning});
541544}
542545
546+void LauncherModel::applicationSurfaceCountChanged(int count)
547+{
548+ ApplicationInfoInterface *app = static_cast<ApplicationInfoInterface*>(sender());
549+ int idx = findApplication(app->appId());
550+ if (idx < 0) {
551+ qWarning() << "Received a surface count changed event from an app that's not in the Launcher model";
552+ return;
553+ }
554+ LauncherItem *item = m_list.at(idx);
555+ if (item->surfaceCount() != count) {
556+ item->setSurfaceCount(count);
557+ Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount});
558+ }
559+}
560+
543561void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
544562{
545563 Q_UNUSED(parent)
546564
565+ ApplicationInfoInterface *app = m_appManager->get(row);
547566 int appIndex = -1;
548567 for (int i = 0; i < m_list.count(); ++i) {
549− if (m_list.at(i)->appId() == m_appManager->get(row)->appId()) {
568+ if (m_list.at(i)->appId() == app->appId()) {
550569 appIndex = i;
551570 break;
552571 }
@@ -557,17 +576,24 @@ void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
557576 return;
558577 }
559578
579+ disconnect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged);
580+
560581 LauncherItem * item = m_list.at(appIndex);
561− item->setRunning(false);
562582
563583 if (!item->pinned()) {
564584 beginRemoveRows(QModelIndex(), appIndex, appIndex);
565585 m_list.takeAt(appIndex)->deleteLater();
566586 endRemoveRows();
567587 m_asAdapter->syncItems(m_list);
568− Q_EMIT dataChanged(index(appIndex), index(appIndex), {RolePinned});
588+ } else {
589+ QVector<int> changedRoles = {RoleRunning};
590+ item->setRunning(false);
591+ if (item->focused()) {
592+ changedRoles << RoleFocused;
593+ item->setFocused(false);
594+ }
595+ Q_EMIT dataChanged(index(appIndex), index(appIndex), changedRoles);
569596 }
570− Q_EMIT dataChanged(index(appIndex), index(appIndex), {RoleRunning});
571597}
572598
573599void LauncherModel::focusedAppIdChanged()
@@ -576,8 +602,14 @@ void LauncherModel::focusedAppIdChanged()
576602 for (int i = 0; i < m_list.count(); ++i) {
577603 LauncherItem *item = m_list.at(i);
578604 if (!item->focused() && item->appId() == appId) {
605+ QVector<int> changedRoles;
606+ changedRoles << RoleFocused;
579607 item->setFocused(true);
580− Q_EMIT dataChanged(index(i), index(i), {RoleFocused});
608+ if (item->alerting()) {
609+ changedRoles << RoleAlerting;
610+ item->setAlerting(false);
611+ }
612+ Q_EMIT dataChanged(index(i), index(i), changedRoles);
581613 } else if (item->focused() && item->appId() != appId) {
582614 item->setFocused(false);
583615 Q_EMIT dataChanged(index(i), index(i), {RoleFocused});
plugins/Unity/Launcher/launchermodel.h+1−1
@@ -45,7 +45,6 @@ public:
4545
4646 QVariant data(const QModelIndex &index, int role) const override;
4747
48− Q_INVOKABLE void setAlerting(const QString &appId, bool alerting) override;
4948 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const override;
5049 Q_INVOKABLE void move(int oldIndex, int newIndex) override;
5150 Q_INVOKABLE void pin(const QString &appId, int index = -1) override;
@@ -79,6 +78,7 @@ private Q_SLOTS:
7978 void applicationAdded(const QModelIndex &parent, int row);
8079 void applicationRemoved(const QModelIndex &parent, int row);
8180 void focusedAppIdChanged();
81+ void applicationSurfaceCountChanged(int);
8282
8383private:
8484 QList<LauncherItem*> m_list;
plugins/Unity/Platform/Platform.qmltypesdeleted−20
@@ -1,20 +0,0 @@
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.Platform 1.0 plugins'
8−
9−Module {
10− Component {
11− name: "Platform"
12− prototype: "QObject"
13− exports: ["Unity.Platform/Platform 1.0"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Property { name: "chassis"; type: "string"; isReadonly: true }
18− Property { name: "isPC"; type: "bool"; isReadonly: true }
19− }
20−}
plugins/Unity/Session/CMakeLists.txt+2
@@ -6,6 +6,8 @@ include_directories(
66 ${libunity8-private_SOURCE_DIR}
77)
88
9+add_definitions(-DSM_BUSNAME=systemBus)
10+
911set(QMLSESSIONPLUGIN_SRC
1012 plugin.cpp
1113 dbusunitysessionservice.cpp
plugins/Unity/Session/Session.qmltypesdeleted−85
@@ -1,85 +0,0 @@
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: "UnityDBusObject"
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 {
22− name: "logoutRequested"
23− Parameter { name: "have_inhibitors"; type: "bool" }
24− }
25− Signal {
26− name: "RebootRequested"
27− Parameter { name: "have_inhibitors"; type: "bool" }
28− }
29− Signal {
30− name: "rebootRequested"
31− Parameter { name: "have_inhibitors"; type: "bool" }
32− }
33− Signal {
34− name: "ShutdownRequested"
35− Parameter { name: "have_inhibitors"; type: "bool" }
36− }
37− Signal {
38− name: "shutdownRequested"
39− Parameter { name: "have_inhibitors"; type: "bool" }
40− }
41− Signal { name: "LogoutReady" }
42− Signal { name: "logoutReady" }
43− Signal { name: "LockRequested" }
44− Signal { name: "lockRequested" }
45− Signal { name: "Locked" }
46− Signal { name: "Unlocked" }
47− Method { name: "Logout" }
48− Method { name: "Reboot" }
49− Method { name: "Shutdown" }
50− Method { name: "Suspend" }
51− Method { name: "Hibernate" }
52− Method { name: "HybridSleep" }
53− Method { name: "RequestLogout" }
54− Method { name: "RequestReboot" }
55− Method { name: "RequestShutdown" }
56− Method { name: "EndSession" }
57− Method { name: "CanHibernate"; type: "bool" }
58− Method { name: "CanSuspend"; type: "bool" }
59− Method { name: "CanHybridSleep"; type: "bool" }
60− Method { name: "CanReboot"; type: "bool" }
61− Method { name: "CanShutdown"; type: "bool" }
62− Method { name: "CanLock"; type: "bool" }
63− Method { name: "UserName"; type: "string" }
64− Method { name: "RealName"; type: "string" }
65− Method { name: "HostName"; type: "string" }
66− Method { name: "PromptLock" }
67− Method { name: "Lock" }
68− Method { name: "IsLocked"; type: "bool" }
69− Method { name: "logout" }
70− Method { name: "reboot" }
71− Method { name: "shutdown" }
72− Method { name: "endSession" }
73− }
74− Component {
75− name: "OrientationLock"
76− prototype: "QObject"
77− exports: ["Unity.Session/OrientationLock 0.1"]
78− isCreatable: false
79− isSingleton: true
80− exportMetaObjectRevisions: [0]
81− Property { name: "enabled"; type: "bool"; isReadonly: true }
82− Property { name: "savedOrientation"; type: "Qt::ScreenOrientation" }
83− }
84− Component { name: "UnityDBusObject"; prototype: "QObject" }
85−}
plugins/Unity/Session/dbusunitysessionservice.cpp+50−18
@@ -64,19 +64,19 @@ public:
6464 QStringLiteral("GetSessionByPID"));
6565 msg << (quint32) getpid();
6666
67− QDBusReply<QDBusObjectPath> reply = QDBusConnection::systemBus().call(msg);
67+ QDBusReply<QDBusObjectPath> reply = QDBusConnection::SM_BUSNAME().call(msg);
6868 if (reply.isValid()) {
6969 logindSessionPath = reply.value().path();
7070
7171 // start watching the Active property
72− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, logindSessionPath, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"),
73− this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList)));
72+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, logindSessionPath, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"),
73+ this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList)));
7474
7575 setupSystemdInhibition();
7676
7777 // re-enable the inhibition upon resume from sleep
78− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, QStringLiteral("PrepareForSleep"),
79− this, SLOT(onResuming(bool)));
78+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, QStringLiteral("PrepareForSleep"),
79+ this, SLOT(onResuming(bool)));
8080 } else {
8181 qWarning() << "Failed to get logind session path" << reply.error().message();
8282 }
@@ -96,7 +96,7 @@ public:
9696 msg << "Unity8 handles power events"; // why
9797 msg << "block"; // mode
9898
99− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
99+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
100100 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
101101 connect(watcher, &QDBusPendingCallWatcher::finished,
102102 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -114,7 +114,7 @@ public:
114114 bool checkLogin1Call(const QString &method) const
115115 {
116116 QDBusMessage msg = QDBusMessage::createMethodCall(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, method);
117− QDBusReply<QString> reply = QDBusConnection::systemBus().call(msg);
117+ QDBusReply<QString> reply = QDBusConnection::SM_BUSNAME().call(msg);
118118 return reply.isValid() && (reply == QStringLiteral("yes") || reply == QStringLiteral("challenge"));
119119 }
120120
@@ -125,7 +125,7 @@ public:
125125 LOGIN1_IFACE,
126126 method);
127127 msg.setArguments(args);
128− QDBusConnection::systemBus().asyncCall(msg);
128+ QDBusConnection::SM_BUSNAME().asyncCall(msg);
129129 }
130130
131131 void setActive(bool active)
@@ -157,7 +157,7 @@ public:
157157 msg << LOGIN1_SESSION_IFACE;
158158 msg << ACTIVE_KEY;
159159
160− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
160+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
161161 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
162162 connect(watcher, &QDBusPendingCallWatcher::finished,
163163 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -191,7 +191,7 @@ public:
191191 msg << LOGIN1_SESSION_IFACE;
192192 msg << IDLE_SINCE_KEY;
193193
194− QDBusReply<QVariant> reply = QDBusConnection::systemBus().call(msg);
194+ QDBusReply<QVariant> reply = QDBusConnection::SM_BUSNAME().call(msg);
195195 if (reply.isValid()) {
196196 return reply.value().value<quint64>();
197197 } else {
@@ -208,7 +208,7 @@ public:
208208 LOGIN1_SESSION_IFACE,
209209 QStringLiteral("SetIdleHint"));
210210 msg << idle;
211− QDBusConnection::systemBus().asyncCall(msg);
211+ QDBusConnection::SM_BUSNAME().asyncCall(msg);
212212 }
213213
214214private Q_SLOTS:
@@ -243,11 +243,11 @@ DBusUnitySessionService::DBusUnitySessionService()
243243 : UnityDBusObject(QStringLiteral("/com/canonical/Unity/Session"), QStringLiteral("com.canonical.Unity"))
244244{
245245 if (!d->logindSessionPath.isEmpty()) {
246− // connect our Lock() slot to the logind's session Lock() signal
247− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Lock"), this, SLOT(Lock()));
246+ // connect our PromptLock() slot to the logind's session Lock() signal
247+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Lock"), this, SLOT(PromptLock()));
248248 // ... and our Unlocked() signal to the logind's session Unlock() signal
249249 // (lightdm handles the unlocking by calling logind's Unlock method which in turn emits this signal we connect to)
250− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SIGNAL(Unlocked()));
250+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SLOT(doUnlock()));
251251 connect(d, &DBusUnitySessionServicePrivate::prepareForSleep, this, &DBusUnitySessionService::PromptLock);
252252 } else {
253253 qWarning() << "Failed to connect to logind's session Lock/Unlock signals";
@@ -332,15 +332,41 @@ QString DBusUnitySessionService::HostName() const
332332
333333void DBusUnitySessionService::PromptLock()
334334{
335+ // Prompt as in quick. No locking animation needed. Usually used by
336+ // indicator-session in combination with a switch to greeter or other
337+ // user session.
335338 Q_EMIT LockRequested();
336339 Q_EMIT lockRequested();
337340}
338341
339342void DBusUnitySessionService::Lock()
340343{
341− // signal u8 to show the lockscreen/greeter
344+ // Normal lock (with animation, as compared to PromptLock above). Usually
345+ // used by indicator-session to lock the session in place.
346+ //
347+ // FIXME: We also -- as a bit of a hack around indicator-session not fully
348+ // supporting a phone profile -- switch to greeter here. The unity7 flow is
349+ // that the user chooses "Lock/Switch" from the indicator, and then can go
350+ // to greeter by selecting "Switch" again from the indicator, which is now
351+ // exposed by the desktop_lockscreen profile. But since in unity8, we try
352+ // to expose most things all the time, we don't use the separate lockscreen
353+ // profile. Instead, we just go directly to the greeter the first time
354+ // a user presses "Lock/Switch". This isn't what this DBus call is
355+ // supposed to do, but we can live with it for now.
356+ //
357+ // Here's a bug about indicator-session growing a converged Touch profile:
358+ // https://launchpad.net/bugs/1557716
359+ //
360+ // We only do this here in the animated-lock call because that's the only
361+ // time the indicator locks without also asking the display manager to
362+ // switch sessions on us. And since we are switching screens, we also
363+ // don't bother respecting the animate request, simply doing a PromptLock.
342364 PromptLock();
365+ switchToGreeter();
366+}
343367
368+void DBusUnitySessionService::switchToGreeter()
369+{
344370 // lock the session using the org.freedesktop.DisplayManager system DBUS service
345371 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
346372 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +374,7 @@ void DBusUnitySessionService::Lock()
348374 QStringLiteral("org.freedesktop.DisplayManager.Session"),
349375 QStringLiteral("Lock"));
350376
351− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
377+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
352378 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
353379 connect(watcher, &QDBusPendingCallWatcher::finished,
354380 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -365,6 +391,12 @@ void DBusUnitySessionService::Lock()
365391 });
366392}
367393
394+void DBusUnitySessionService::doUnlock()
395+{
396+ Q_EMIT Unlocked();
397+ Q_EMIT unlocked();
398+}
399+
368400bool DBusUnitySessionService::IsLocked() const
369401{
370402 return !d->isSessionActive;
@@ -486,7 +518,7 @@ void DBusGnomeScreensaverWrapper::SetActive(bool lock)
486518
487519void DBusGnomeScreensaverWrapper::Lock()
488520{
489− performAsyncUnityCall(QStringLiteral("Lock"));
521+ performAsyncUnityCall(QStringLiteral("PromptLock"));
490522}
491523
492524quint32 DBusGnomeScreensaverWrapper::GetActiveTime() const
@@ -523,7 +555,7 @@ bool DBusScreensaverWrapper::SetActive(bool lock)
523555
524556void DBusScreensaverWrapper::Lock()
525557{
526− performAsyncUnityCall(QStringLiteral("Lock"));
558+ performAsyncUnityCall(QStringLiteral("PromptLock"));
527559}
528560
529561quint32 DBusScreensaverWrapper::GetActiveTime() const
plugins/Unity/Session/dbusunitysessionservice.h+7
@@ -106,6 +106,7 @@ Q_SIGNALS:
106106 * Emitted after the session has been unlocked.
107107 */
108108 Q_SCRIPTABLE void Unlocked();
109+ void unlocked();
109110
110111public Q_SLOTS:
111112 /**
@@ -258,6 +259,12 @@ public Q_SLOTS:
258259 * @return whether the session is currently locked
259260 */
260261 Q_SCRIPTABLE bool IsLocked() const;
262+
263+private Q_SLOTS:
264+ void doUnlock();
265+
266+private:
267+ void switchToGreeter();
261268};
262269
263270class DBusGnomeSessionManagerWrapper : public UnityDBusObject
plugins/Utils/CMakeLists.txt+5
@@ -1,6 +1,10 @@
11include_directories(
22 ${CMAKE_CURRENT_SOURCE_DIR}
33 ${CMAKE_CURRENT_BINARY_DIR}
4+)
5+
6+include_directories(
7+ SYSTEM
48 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
59 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
610 ${GIO_INCLUDE_DIRS}
@@ -9,6 +13,7 @@ include_directories(
913set(QMLPLUGIN_SRC
1014 activefocuslogger.cpp
1115 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
16+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
1217 applicationsfiltermodel.cpp
1318 constants.cpp
1419 WindowInputMonitor.cpp
plugins/Utils/Utils.qmltypesdeleted−175
@@ -1,175 +0,0 @@
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: "RelativeTimeFormatter"
64− prototype: "TimeFormatter"
65− exports: ["Utils/RelativeTimeFormatter 0.1"]
66− exportMetaObjectRevisions: [0]
67− }
68− Component {
69− name: "TimeFormatter"
70− prototype: "QObject"
71− exports: ["Utils/GDateTimeFormatter 0.1", "Utils/TimeFormatter 0.1"]
72− exportMetaObjectRevisions: [0, 0]
73− Property { name: "format"; type: "string" }
74− Property { name: "timeString"; type: "string"; isReadonly: true }
75− Property { name: "time"; type: "qlonglong" }
76− Signal {
77− name: "formatChanged"
78− Parameter { name: "format"; type: "string" }
79− }
80− Signal {
81− name: "timeStringChanged"
82− Parameter { name: "timeString"; type: "string" }
83− }
84− Signal {
85− name: "timeChanged"
86− Parameter { name: "time"; type: "qlonglong" }
87− }
88− }
89− Component {
90− name: "UnityMenuModelPaths"
91− prototype: "QObject"
92− exports: ["Utils/UnityMenuModelPaths 0.1"]
93− exportMetaObjectRevisions: [0]
94− Property { name: "source"; type: "QVariant" }
95− Property { name: "busName"; type: "QByteArray"; isReadonly: true }
96− Property { name: "actions"; type: "QVariantMap"; isReadonly: true }
97− Property { name: "menuObjectPath"; type: "QByteArray"; isReadonly: true }
98− Property { name: "busNameHint"; type: "QByteArray" }
99− Property { name: "actionsHint"; type: "QByteArray" }
100− Property { name: "menuObjectPathHint"; type: "QByteArray" }
101− }
102− Component {
103− name: "UnitySortFilterProxyModelQML"
104− prototype: "QSortFilterProxyModel"
105− exports: ["Utils/UnitySortFilterProxyModel 0.1"]
106− exportMetaObjectRevisions: [0]
107− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
108− Property { name: "totalCount"; type: "int"; isReadonly: true }
109− Property { name: "count"; type: "int"; isReadonly: true }
110− Property { name: "invertMatch"; type: "bool" }
111− Signal {
112− name: "invertMatchChanged"
113− Parameter { type: "bool" }
114− }
115− Method {
116− name: "get"
117− type: "QVariantMap"
118− Parameter { name: "row"; type: "int" }
119− }
120− Method {
121− name: "data"
122− type: "QVariant"
123− Parameter { name: "row"; type: "int" }
124− Parameter { name: "role"; type: "int" }
125− }
126− Method { name: "count"; type: "int" }
127− Method {
128− name: "findFirst"
129− type: "int"
130− Parameter { name: "role"; type: "int" }
131− Parameter { name: "value"; type: "QVariant" }
132− }
133− Method {
134− name: "mapRowToSource"
135− type: "int"
136− Parameter { name: "row"; type: "int" }
137− }
138− Method {
139− name: "mapFromSource"
140− type: "int"
141− Parameter { name: "row"; type: "int" }
142− }
143− Method {
144− name: "mapToSource"
145− type: "int"
146− Parameter { name: "row"; type: "int" }
147− }
148− }
149− Component {
150− name: "WindowInputFilter"
151− defaultProperty: "data"
152− prototype: "QQuickItem"
153− exports: ["Utils/WindowInputFilter 0.1"]
154− exportMetaObjectRevisions: [0]
155− }
156− Component {
157− name: "WindowStateStorage"
158− prototype: "QObject"
159− exports: ["Utils/WindowStateStorage 0.1"]
160− isCreatable: false
161− isSingleton: true
162− exportMetaObjectRevisions: [0]
163− Method {
164− name: "saveGeometry"
165− Parameter { name: "windowId"; type: "string" }
166− Parameter { name: "rect"; type: "QRect" }
167− }
168− Method {
169− name: "getGeometry"
170− type: "QRect"
171− Parameter { name: "windowId"; type: "string" }
172− Parameter { name: "defaultValue"; type: "QRect" }
173− }
174− }
175−}
plugins/Utils/deviceconfigparser.cpp+1−1
@@ -26,7 +26,7 @@ DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
2626 // Local files have highest priority
2727 QString path;
2828 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
29− if (QFileInfo(standardPath + "/devices.conf").exists()) {
29+ if (QFileInfo::exists(standardPath + "/devices.conf")) {
3030 path = standardPath + "/devices.conf";
3131 break;
3232 }
plugins/Utils/globalfunctions.cpp+1−4
@@ -16,11 +16,8 @@
1616
1717#include "globalfunctions.h"
1818
19−#pragma GCC diagnostic push
20−#pragma GCC diagnostic ignored "-pedantic"
21−#include <private/qquickitem_p.h>
22−#pragma GCC diagnostic pop
2319#include <QQmlEngine>
20+#include <private/qquickitem_p.h>
2421
2522GlobalFunctions::GlobalFunctions(QObject *parent)
2623 : QObject(parent)
plugins/Utils/timezoneFormatter.cpp+1−1
@@ -39,7 +39,7 @@ QString TimezoneFormatter::currentTimeInTimezoneWithAbbrev(const QVariant &tzId)
3939 QTimeZone tz(tzId.toByteArray());
4040 if (tz.isValid()) {
4141 const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
42− return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm"))).arg(tz.abbreviation(now));
42+ return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm")), tz.abbreviation(now));
4343 }
4444 return QString();
4545}
plugins/Utils/windowstatestorage.cpp+5−3
@@ -28,7 +28,9 @@
2828QMutex WindowStateStorage::s_mutex;
2929
3030inline QString sanitiseString(QString string) {
31− return string.remove("\"").remove("'").remove("\\");
31+ return string.remove(QLatin1Char('\"'))
32+ .remove(QLatin1Char('\''))
33+ .remove(QLatin1Char('\\'));
3234}
3335
3436WindowStateStorage::WindowStateStorage(QObject *parent):
@@ -95,7 +97,7 @@ void WindowStateStorage::saveStage(const QString &appId, int stage)
9597 saveValue(queryString);
9698}
9799
98−int WindowStateStorage::getStage(const QString &appId) const
100+int WindowStateStorage::getStage(const QString &appId, int defaultValue) const
99101{
100102 const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
101103 .arg(sanitiseString(appId));
@@ -103,7 +105,7 @@ int WindowStateStorage::getStage(const QString &appId) const
103105 QSqlQuery query = getValue(queryString);
104106
105107 if (!query.first()) {
106− return unity::shell::application::ApplicationInfoInterface::MainStage;
108+ return defaultValue;
107109 }
108110 return query.value("stage").toInt();
109111}
plugins/Utils/windowstatestorage.h+1−1
@@ -49,7 +49,7 @@ public:
4949 Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
5050
5151 Q_INVOKABLE void saveStage(const QString &appId, int stage);
52− Q_INVOKABLE int getStage(const QString &appId) const;
52+ Q_INVOKABLE int getStage(const QString &appId, int defaultValue) const;
5353
5454private:
5555 void initdb();
plugins/WindowManager/CMakeLists.txt+1
@@ -4,6 +4,7 @@ set(WINDOWMANAGER_SRC
44 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
55 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
66 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
7+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
78 )
89
910add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
plugins/Wizard/CMakeLists.txt+6−3
@@ -1,4 +1,6 @@
1−include_directories(${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
1+pkg_search_module(GD3 REQUIRED gnome-desktop-3.0)
2+
3+include_directories(SYSTEM ${GD3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
24
35add_library(Wizard-qml MODULE
46 plugin.cpp
@@ -7,10 +9,11 @@ add_library(Wizard-qml MODULE
79 LocalePlugin.cpp
810 timezonemodel.cpp
911 Status.cpp
12+ keyboardLayoutsModel.cpp
1013)
1114
12−qt5_use_modules(Wizard-qml DBus Qml Concurrent)
13−target_link_libraries(Wizard-qml ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
15+qt5_use_modules(Wizard-qml DBus Qml)
16+target_link_libraries(Wizard-qml ${GD3_LDFLAGS} ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
1417add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
1518
1619set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
plugins/Wizard/PageList.cpp+16−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical Ltd.
2+ * Copyright (C) 2014-2016 Canonical Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it
55 * under the terms of the GNU General Public License version 3, as published
@@ -34,6 +34,7 @@
3434#include <QDir>
3535#include <QSet>
3636#include <QStandardPaths>
37+#include <QSettings>
3738
3839PageList::PageList(QObject *parent)
3940 : QObject(parent),
@@ -66,6 +67,20 @@ PageList::PageList(QObject *parent)
6667 Q_FOREACH(const QString &page, disabledPages) {
6768 m_pages.remove(page);
6869 }
70+
71+ // If there was a system update installed, skip until the last page to just greet the user
72+ QSettings settings;
73+ if (settings.value(QStringLiteral("Wizard/SkipUntilFinishedPage")).toBool()) {
74+ const QString lastPage = m_pages.lastKey();
75+ Q_FOREACH(const QString &page, m_pages.keys()) {
76+ if (Q_UNLIKELY(page != lastPage)) {
77+ m_pages.remove(page);
78+ }
79+ }
80+
81+ // ... and reset it again for the next run
82+ settings.remove(QStringLiteral("Wizard/SkipUntilFinishedPage"));
83+ }
6984}
7085
7186QStringList PageList::entries() const
plugins/Wizard/System.cpp+10−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical Ltd.
2+ * Copyright (C) 2014-2016 Canonical Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it
55 * under the terms of the GNU General Public License version 3, as published
@@ -26,6 +26,7 @@
2626#include <QMap>
2727#include <QProcess>
2828#include <QDebug>
29+#include <QSettings>
2930
3031System::System()
3132 : QObject()
@@ -105,7 +106,15 @@ void System::updateSessionLocale(const QString &locale)
105106 initctl stop scope-registry; \
106107 initctl stop smart-scopes-proxy; \
107108 initctl emit --no-wait indicator-services-start; \
109+ initctl restart --no-wait ubuntu-location-service-trust-stored; \
108110 initctl restart --no-wait maliit-server; \
109111 initctl restart --no-wait indicator-messages; \
110112 initctl restart --no-wait unity8-dash\""));
111113}
114+
115+void System::skipUntilFinishedPage()
116+{
117+ QSettings settings;
118+ settings.setValue(QStringLiteral("Wizard/SkipUntilFinishedPage"), true);
119+ settings.sync();
120+}
plugins/Wizard/System.h+5−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical Ltd.
2+ * Copyright (C) 2014-2016 Canonical Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it
55 * under the terms of the GNU General Public License version 3, as published
@@ -35,6 +35,10 @@ public:
3535
3636public Q_SLOTS:
3737 void updateSessionLocale(const QString &locale);
38+ /**
39+ * Mark the wizard to skip all the pages and just show the last (welcome to ubuntu) page
40+ */
41+ void skipUntilFinishedPage();
3842
3943Q_SIGNALS:
4044 void wizardEnabledChanged();
plugins/Wizard/Wizard.qmltypesdeleted−33
@@ -1,33 +0,0 @@
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 Wizard 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "PageList"
12− prototype: "QObject"
13− exports: ["Wizard/PageList 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "index"; type: "int"; isReadonly: true }
16− Property { name: "numPages"; type: "int"; isReadonly: true }
17− Method { name: "prev"; type: "string" }
18− Method { name: "next"; type: "string" }
19− }
20− Component {
21− name: "System"
22− prototype: "QObject"
23− exports: ["Wizard/System 0.1"]
24− isCreatable: false
25− isSingleton: true
26− exportMetaObjectRevisions: [0]
27− Property { name: "wizardEnabled"; type: "bool" }
28− Method {
29− name: "updateSessionLanguage"
30− Parameter { name: "locale"; type: "string" }
31− }
32− }
33−}
plugins/Wizard/keyboardLayoutsModel.cppnew file+163
@@ -0,0 +1,163 @@
1+/*
2+ * Copyright (C) 2016 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QDBusMetaType>
18+#include <QDebug>
19+
20+#define GNOME_DESKTOP_USE_UNSTABLE_API
21+#include <libgnome-desktop/gnome-xkb-info.h>
22+
23+#include "keyboardLayoutsModel.h"
24+
25+typedef QList<QMap<QString, QString>> StringMapList;
26+Q_DECLARE_METATYPE(StringMapList)
27+
28+KeyboardLayoutsModel::KeyboardLayoutsModel(QObject *parent)
29+ : QAbstractListModel(parent)
30+{
31+ m_roleNames = {
32+ {LayoutIdRole, "layoutId"},
33+ {DisplayNameRole, "displayName"},
34+ {LanguageRole, "language"}
35+ };
36+
37+ qDBusRegisterMetaType<StringMapList>();
38+
39+ buildModel();
40+ connect(this, &KeyboardLayoutsModel::languageChanged, this, &KeyboardLayoutsModel::updateModel);
41+}
42+
43+QString KeyboardLayoutsModel::language() const
44+{
45+ return m_language;
46+}
47+
48+void KeyboardLayoutsModel::setLanguage(const QString &language)
49+{
50+ if (m_language == language)
51+ return;
52+
53+ m_language = language;
54+ Q_EMIT languageChanged(language);
55+}
56+
57+static bool compareLayouts(const KeyboardLayoutInfo &layout0, const KeyboardLayoutInfo &layout1)
58+{
59+ QString name0(layout0.id);
60+ QString name1(layout1.id);
61+
62+ if (name0 == name1) {
63+ name0 = layout0.displayName;
64+ name1 = layout1.displayName;
65+
66+ if (name0 == name1) {
67+ name0 = layout0.language;
68+ name1 = layout1.language;
69+ }
70+ }
71+
72+ return QString::localeAwareCompare(name0, name1) < 0;
73+}
74+
75+void KeyboardLayoutsModel::buildModel()
76+{
77+ GList *sources, *tmp;
78+ const gchar *display_name;
79+ const gchar *short_name;
80+ const gchar *xkb_layout;
81+ const gchar *xkb_variant;
82+
83+ GnomeXkbInfo * xkbInfo(gnome_xkb_info_new());
84+
85+ sources = gnome_xkb_info_get_all_layouts(xkbInfo);
86+
87+ for (tmp = sources; tmp != NULL; tmp = tmp->next) {
88+ gboolean result = gnome_xkb_info_get_layout_info(xkbInfo, (const gchar *)tmp->data,
89+ &display_name, &short_name, &xkb_layout, &xkb_variant);
90+ if (!result) {
91+ qWarning() << "Skipping invalid layout";
92+ continue;
93+ }
94+
95+ KeyboardLayoutInfo layout;
96+ layout.id = QString::fromUtf8((const gchar *)tmp->data);
97+ layout.language = QString::fromUtf8(short_name);
98+ layout.displayName = QString::fromUtf8(display_name);
99+
100+ m_db.append(layout);
101+ }
102+ g_list_free(sources);
103+ g_object_unref(xkbInfo);
104+
105+ std::sort(m_db.begin(), m_db.end(), compareLayouts);
106+}
107+
108+void KeyboardLayoutsModel::updateModel()
109+{
110+ beginResetModel();
111+ m_layouts.clear();
112+
113+ const QString lang = m_language.section("_", 0, 0);
114+ const QString country = m_language.section("_", 1, 1).toLower();
115+
116+ Q_FOREACH(const KeyboardLayoutInfo & info, m_db) {
117+ const QString kbdCountry = info.id.section("+", 0, 0);
118+ if (info.language == lang && // filter by language
119+ (kbdCountry.startsWith(country) || kbdCountry.length() > 2)) { // and by known country, also insert anything that doesn't match the country
120+ m_layouts.append(info);
121+ }
122+ }
123+
124+ std::sort(m_layouts.begin(), m_layouts.end(), compareLayouts);
125+ endResetModel();
126+}
127+
128+int KeyboardLayoutsModel::rowCount(const QModelIndex &parent) const
129+{
130+ Q_UNUSED(parent)
131+ return m_layouts.count();
132+}
133+
134+QVariant KeyboardLayoutsModel::data(const QModelIndex &index, int role) const
135+{
136+ const int row = index.row();
137+
138+ if (row >= m_layouts.count()) {
139+ qWarning() << Q_FUNC_INFO << "index out of bounds";
140+ return QVariant();
141+ }
142+
143+ const KeyboardLayoutInfo &layout = m_layouts.at(row);
144+
145+ switch (role) {
146+ case Qt::DisplayRole:
147+ case DisplayNameRole:
148+ return layout.displayName;
149+ case LayoutIdRole:
150+ return layout.id;
151+ case LanguageRole:
152+ return layout.language;
153+ default: {
154+ qWarning() << Q_FUNC_INFO << "unsupported data role";
155+ return QVariant();
156+ }
157+ }
158+}
159+
160+QHash<int, QByteArray> KeyboardLayoutsModel::roleNames() const
161+{
162+ return m_roleNames;
163+}
plugins/Wizard/keyboardLayoutsModel.hnew file+66
@@ -0,0 +1,66 @@
1+/*
2+ * Copyright (C) 2016 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef KEYBOARDLAYOUTSMODEL_H
18+#define KEYBOARDLAYOUTSMODEL_H
19+
20+#include <QAbstractListModel>
21+
22+struct KeyboardLayoutInfo {
23+ QString id;
24+ QString displayName;
25+ QString language;
26+};
27+
28+class KeyboardLayoutsModel: public QAbstractListModel
29+{
30+ Q_OBJECT
31+
32+ Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
33+
34+public:
35+ explicit KeyboardLayoutsModel(QObject * parent = nullptr);
36+ ~KeyboardLayoutsModel() = default;
37+
38+ enum Roles {
39+ LayoutIdRole = Qt::UserRole + 1,
40+ DisplayNameRole,
41+ LanguageRole
42+ };
43+
44+ QString language() const;
45+ void setLanguage(const QString &language);
46+
47+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
48+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
49+ QHash<int, QByteArray> roleNames() const override;
50+
51+Q_SIGNALS:
52+ void languageChanged(const QString &language);
53+
54+private Q_SLOTS:
55+ void updateModel();
56+
57+private:
58+ void buildModel();
59+
60+ QString m_language;
61+ QHash<int, QByteArray> m_roleNames;
62+ QVector<KeyboardLayoutInfo> m_layouts;
63+ QVector<KeyboardLayoutInfo> m_db;
64+};
65+
66+#endif
plugins/Wizard/plugin.cpp+2
@@ -20,6 +20,7 @@
2020#include "timezonemodel.h"
2121#include "LocalePlugin.h"
2222#include "Status.h"
23+#include "keyboardLayoutsModel.h"
2324
2425#include <QtQml/qqml.h>
2526
@@ -30,5 +31,6 @@ void WizardPlugin::registerTypes(const char *uri)
3031 qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
3132 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
3233 qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
34+ qmlRegisterType<KeyboardLayoutsModel>(uri, 0, 1, "KeyboardLayoutsModel");
3335 qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
3436}
plugins/Wizard/qmldir−1
@@ -1,3 +1,2 @@
11module Wizard
22plugin Wizard-qml
3−typeinfo Wizard.qmltypes
plugins/Wizard/timezonemodel.cpp+5−5
@@ -60,12 +60,12 @@ QVariant TimeZoneLocationModel::data(const QModelIndex &index, int role) const
6060
6161 switch (role) {
6262 case Qt::DisplayRole:
63− return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city))
64− .arg(geonames_city_get_state(city))
65− .arg(geonames_city_get_country(city));
63+ return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city),
64+ geonames_city_get_state(city),
65+ geonames_city_get_country(city));
6666 case SimpleRole:
67− return QStringLiteral("%1, %2").arg(geonames_city_get_name(city))
68− .arg(geonames_city_get_country(city));
67+ return QStringLiteral("%1, %2").arg(geonames_city_get_name(city),
68+ geonames_city_get_country(city));
6969 case TimeZoneRole:
7070 return geonames_city_get_timezone(city);
7171 case CountryRole:
po/aa.po+296−93
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2016-02-12 10:18+0000\n"
1212"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
1313"Language-Team: Afar <aa@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Cuumita "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Kat"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr ""
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr ""
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] "Maganak %1 minit qambaalaay, kaadu gabbat"
5555msgstr[1] "Maganak %1 minit qambaalaay, kaadu gabbat"
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr "Eweq"
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr "Koflis"
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "Eweq"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "Bayis"
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr "Wadir-ugus"
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr "Wadir-ugussuh digga maay litoo?"
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr "Maleey"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "Yeey"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr "Cayla"
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
108108msgstr "Timmi haytuh digga maay litoo?"
109109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111111msgctxt "Button: Power off the system"
112112msgid "Power off"
113113msgstr "Timmi hayis"
114114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116116msgctxt "Button: Restart the system"
117117msgid "Restart"
118118msgstr "Wadir-qimbis"
119119
120−#: qml/Components/Lockscreen.qml:231
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
280+#: qml/Components/Lockscreen.qml:239
121281msgid "Return to Call"
122282msgstr "Seecol gacis"
123283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125285msgid "Emergency Call"
126286msgstr ""
127287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129289msgid "OK"
130290msgstr "Hayya"
131291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132302#: qml/Components/ModeSwitchWarningDialog.qml:32
133303msgid "Apps may have unsaved data:"
134304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155325msgid "Close all"
156326msgstr "Inkih alif"
157327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158332#: qml/Dash/DashPageHeader.qml:333
159333msgctxt "Button: Open the Ubuntu Store"
160334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186360msgid "Reset"
187361msgstr ""
188362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190364msgid "Show less"
191365msgstr ""
192366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194368msgid "Show all"
195369msgstr ""
196370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198372msgctxt "Label: Hint for dash search line edit"
199373msgid "Search"
200374msgstr "Goranto"
@@ -228,10 +402,6 @@ msgstr ""
228402msgid "Add a review"
229403msgstr ""
230404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236406msgid "Pull to refresh…"
237407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248418msgid "Manage"
249419msgstr ""
250420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252422msgid "Home"
253423msgstr "Dabqi"
254424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256426msgid "Also installed"
257427msgstr ""
258428
@@ -262,16 +432,28 @@ msgid ""
262432"touch pad to interact with the pointer."
263433msgstr ""
264434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266436msgid "Unlock"
267437msgstr ""
268438
269−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270452msgid "Retry"
271453msgstr "Qagis"
272454
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
455+#: qml/Greeter/LoginList.qml:260
456+msgid "Log In"
275457msgstr ""
276458
277459#: qml/Greeter/NarrowView.qml:54
@@ -298,34 +480,34 @@ msgid ""
298480"and all personal data will be deleted."
299481msgstr ""
300482
301−#: qml/Greeter/NarrowView.qml:116
483+#: qml/Greeter/NarrowView.qml:129
302484#, qt-format
303485msgid "Enter %1"
304486msgstr "%1 culus"
305487
306−#: qml/Greeter/NarrowView.qml:117
488+#: qml/Greeter/NarrowView.qml:130
307489msgid "Enter passphrase"
308490msgstr "Tatur-maxco culus"
309491
310−#: qml/Greeter/NarrowView.qml:118
492+#: qml/Greeter/NarrowView.qml:131
311493msgid "Enter passcode"
312494msgstr "Tatur-mudenta culus"
313495
314−#: qml/Greeter/NarrowView.qml:119
496+#: qml/Greeter/NarrowView.qml:135
315497#, qt-format
316498msgid "Sorry, incorrect %1"
317499msgstr ""
318500
319−#: qml/Greeter/NarrowView.qml:120
501+#: qml/Greeter/NarrowView.qml:136
320502msgid "Sorry, incorrect passphrase"
321503msgstr ""
322504
323−#: qml/Greeter/NarrowView.qml:121
505+#: qml/Greeter/NarrowView.qml:137
324506msgctxt "passphrase"
325507msgid "Please re-enter"
326508msgstr ""
327509
328−#: qml/Greeter/NarrowView.qml:122
510+#: qml/Greeter/NarrowView.qml:138
329511msgid "Sorry, incorrect passcode"
330512msgstr ""
331513
@@ -420,32 +602,12 @@ msgstr ""
420602msgid "Drag using 3 fingers any application from one window to the other"
421603msgstr ""
422604
423−#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Swipe up to add a contact"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Swipe up for favorite calculations"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up for recent calls"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "Swipe up to create a message"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Swipe up to manage the app"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialLeftLong.qml:47
605+#: qml/Tutorial/TutorialLeftLong.qml:49
444606msgid "Long swipe from the left edge to open the Today scope"
445607msgstr ""
446608
447609#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
610+msgid "Short swipe from the left edge to open the launcher"
449611msgstr ""
450612
451613#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +615,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453615msgstr ""
454616
455617#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
618+msgid "Swipe from the right edge to view your open apps"
457619msgstr ""
458620
459621#: qml/Tutorial/TutorialTop.qml:53
460−msgid "Swipe from the top right edge to open the notification bar"
461−msgstr ""
462−
463−#: qml/Tutorial/TutorialTop.qml:54
464−msgid "Swipe from the top edge to open the notification bar"
622+msgid "Swipe from the top edge to access notifications and quick settings"
465623msgstr ""
466624
467625#: qml/Wizard/Page.qml:54
@@ -473,15 +631,32 @@ msgstr "Derre"
473631msgid "Language"
474632msgstr ""
475633
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
634+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
477635#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478636#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479637#: qml/Wizard/Pages/75-report-check.qml:84
480−#: qml/Wizard/Pages/passcode-desktop.qml:124
638+#: qml/Wizard/Pages/passcode-desktop.qml:141
481639#: qml/Wizard/Pages/password-set.qml:141
482640msgid "Next"
483641msgstr ""
484642
643+#: qml/Wizard/Pages/20-keyboard.qml:30
644+msgid "Select Keyboard"
645+msgstr ""
646+
647+#: qml/Wizard/Pages/20-keyboard.qml:70
648+msgid "Keyboard language"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:92
652+msgid "Keyboard layout"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
656+#: qml/Wizard/Pages/sim.qml:101
657+msgid "Skip"
658+msgstr "Kaqit"
659+
485660#: qml/Wizard/Pages/30-wifi.qml:29
486661msgid "Connect to Wi‑Fi"
487662msgstr ""
@@ -498,11 +673,6 @@ msgstr ""
498673msgid "No available Wi-Fi networks"
499674msgstr ""
500675
501−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502−#: qml/Wizard/Pages/sim.qml:101
503−msgid "Skip"
504−msgstr "Kaqit"
505−
506676#: qml/Wizard/Pages/40-location.qml:27
507677msgid "Location Services"
508678msgstr ""
@@ -586,6 +756,35 @@ msgstr ""
586756msgid "Privacy policy"
587757msgstr ""
588758
759+#: qml/Wizard/Pages/77-system-update.qml:28
760+msgid "Update Device"
761+msgstr ""
762+
763+#: qml/Wizard/Pages/77-system-update.qml:55
764+msgid ""
765+"There is a system update available and ready to install. Afterwards, the "
766+"device will automatically restart."
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:76
770+msgctxt "string identifying name of the update"
771+msgid "Ubuntu system"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:83
775+#, qt-format
776+msgctxt "version of the system update"
777+msgid "Version %1"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:102
781+msgid "This could take a few minutes..."
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:116
785+msgid "Install and restart now"
786+msgstr ""
787+
589788#: qml/Wizard/Pages/80-finished.qml:89
590789msgid "Welcome to Ubuntu"
591790msgstr ""
@@ -629,7 +828,7 @@ msgid "Service Terms"
629828msgstr ""
630829
631830#: qml/Wizard/Pages/passcode-confirm.qml:43
632−#: qml/Wizard/Pages/passcode-desktop.qml:80
831+#: qml/Wizard/Pages/passcode-desktop.qml:96
633832msgid "Confirm passcode"
634833msgstr ""
635834
@@ -646,24 +845,24 @@ msgstr ""
646845msgid "Lock Screen Passcode"
647846msgstr ""
648847
649−#: qml/Wizard/Pages/passcode-desktop.qml:56
848+#: qml/Wizard/Pages/passcode-desktop.qml:60
650849msgid "Enter 4 numbers to setup your passcode"
651850msgstr ""
652851
653−#: qml/Wizard/Pages/passcode-desktop.qml:65
852+#: qml/Wizard/Pages/passcode-desktop.qml:76
654853#: qml/Wizard/Pages/passcode-set.qml:54
655854msgid "Choose passcode"
656855msgstr ""
657856
658−#: qml/Wizard/Pages/passcode-desktop.qml:105
857+#: qml/Wizard/Pages/passcode-desktop.qml:126
659858msgid "Passcode too short"
660859msgstr ""
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:107
861+#: qml/Wizard/Pages/passcode-desktop.qml:128
663862msgid "Passcodes match"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:109
865+#: qml/Wizard/Pages/passcode-desktop.qml:130
667866msgid "Passcodes do not match"
668867msgstr ""
669868
@@ -712,26 +911,30 @@ msgid "To proceed with no SIM tap Skip."
712911msgstr ""
713912
714913#: qml/Wizard/PasswordMeter.qml:87
715−msgid "Passwords match"
914+msgid "Password too short"
716915msgstr ""
717916
718917#: qml/Wizard/PasswordMeter.qml:89
918+msgid "Passwords match"
919+msgstr ""
920+
921+#: qml/Wizard/PasswordMeter.qml:91
719922msgid "Passwords do not match"
720923msgstr ""
721924
722−#: qml/Wizard/PasswordMeter.qml:93
925+#: qml/Wizard/PasswordMeter.qml:95
723926msgid "Strong password"
724927msgstr ""
725928
726−#: qml/Wizard/PasswordMeter.qml:95
929+#: qml/Wizard/PasswordMeter.qml:97
727930msgid "Fair password"
728931msgstr ""
729932
730−#: qml/Wizard/PasswordMeter.qml:97
933+#: qml/Wizard/PasswordMeter.qml:99
731934msgid "Weak password"
732935msgstr ""
733936
734−#: qml/Wizard/PasswordMeter.qml:99
937+#: qml/Wizard/PasswordMeter.qml:101
735938msgid "Very weak password"
736939msgstr ""
737940
po/am.po+334−101
@@ -7,101 +7,101 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
11−"PO-Revision-Date: 2016-03-24 19:07+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11+"PO-Revision-Date: 2016-08-13 14:45+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "የ መግቢያ ቃል: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "አቋራጭ ማጣበቂያ"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "ማጥፊያ"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "አቋራጭ መለያያ"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "አካሉ ተቆልፏል"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ሀረግ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ኮድ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] "እባክዎን ይቆዩ %1 ደቂቃ እና ከዛ እንደ ገና ይምክሩ…"
5555msgstr[1] "እባክዎን ይቆዩ %1 ደቂቃዎች እና ከዛ እንደ ገና ይምክሩ…"
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr "መውጫ"
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr "መቆለፊያ"
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "መውጫ"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "መሰረዣ"
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr "እንደገና ማስነሻ"
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr "አይ"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "አዎ"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr "ሐይል"
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
@@ -109,28 +109,198 @@ msgstr ""
109109"በእርግጥ ሐይሉን ማጥፋት\n"
110110"ይፈልጋሉ?"
111111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113113msgctxt "Button: Power off the system"
114114msgid "Power off"
115115msgstr "ሐይል ማጥፊያ"
116116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118118msgctxt "Button: Restart the system"
119119msgid "Restart"
120120msgstr "እንደገና ማስጀመሪያ"
121121
122−#: qml/Components/Lockscreen.qml:231
122+#: qml/Components/KeyboardShortcutsOverlay.qml:41
123+msgid "Keyboard Shortcuts"
124+msgstr "የ ፊደል ገበታ አቋራጮች"
125+
126+#: qml/Components/KeyboardShortcutsOverlay.qml:55
127+msgid "Unity 8"
128+msgstr "Unity 8"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:62
131+msgid "PrtScr"
132+msgstr "PrtScr"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:67
135+msgid "Takes a screenshot."
136+msgstr "መመልከቻ ፎቶ ማንሻ"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:75
139+msgid "Alt + PrtScr"
140+msgstr "Alt + PrtScr"
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:80
143+msgid "Takes a screenshot of a window."
144+msgstr "የ መስኮት መመልከቻ ፎቶ ማንሻ"
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:88
147+msgid "Super + Space"
148+msgstr "Super + Space"
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:93
151+msgid "Switches to next keyboard layout."
152+msgstr "የሚቀጥለው የ ፊደል ገበታ እቅድ መቀየሪያ"
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:101
155+msgid "Super + Shift + Space"
156+msgstr "Super + Shift + Space"
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:106
159+msgid "Switches to previous keyboard layout."
160+msgstr "ወዳለፈው የ ፊደል ገበታ እቅድ መቀየሪያ"
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:118
163+msgid "Launcher"
164+msgstr "ማስነሻ"
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:125
167+msgid "Super (Hold)"
168+msgstr "Super (ይጫኑ)"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:130
171+msgid "Opens the launcher, displays shortcuts."
172+msgstr "ማስነሻውን መክፈቻ እና አቋራጮች ማሳያ"
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:138
175+msgid "Alt + F1"
176+msgstr "Alt + F1"
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:143
179+msgid "Opens launcher keyboard navigation mode."
180+msgstr "መክፈቻ በ ፊደል ገበታ መቃኛ ዘዴ ማስነሻ"
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:151
183+msgid "Super + Tab"
184+msgstr "Super + Tab"
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:156
187+msgid "Switches applications via the launcher."
188+msgstr "መተግበሪያዎችን በ ማስጀመሪያ መቀየሪያ"
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:164
191+msgid "Super + 0 to 9"
192+msgstr "Super + 0 እስከ 9"
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:169
195+msgid "Same as clicking on a launcher icon."
196+msgstr "ተመሳሳይ በ ማስጀመሪያ ምልክት ላይ እንደ መጫን"
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:181
199+msgid "Scopes"
200+msgstr "ክልል"
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:188
203+msgid "Super (Tap)"
204+msgstr "Super (Tap)"
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:193
207+msgid "Opens the Scopes home."
208+msgstr "የ ክልል ቤት መክፈቻ"
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:209
211+msgid "Switching"
212+msgstr "በ መቀየር ላይ"
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:216
215+msgid "Alt + Tab"
216+msgstr "Alt + Tab"
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:221
219+msgid "Switches between applications."
220+msgstr "በ መተግበሪያዎች መካከል መቀያየሪያ"
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:229
223+msgid "Super + W"
224+msgstr "Super + W"
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:234
227+msgid "Opens the desktop spread."
228+msgstr "የ ዴስክቶፕ ማስፊያ መክፈቻ"
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:242
231+msgid "Cursor Left or Right"
232+msgstr "መጠቆሚያ የ ግራ ወይንም የ ቀኝ"
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:247
235+msgid "Moves the focus."
236+msgstr "ትኩረት ማንቀሳቀሻ"
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:259
239+msgid "Windows"
240+msgstr "መስኮቶች"
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:266
243+msgid "Ctrl + Super + D"
244+msgstr "Ctrl + Super + D"
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:271
247+msgid "Minimizes all windows."
248+msgstr "ሁሉንም መስኮቶች ማሳነሻ"
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:279
251+msgid "Ctrl + Super + Up"
252+msgstr "Ctrl + Super + Up"
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:284
255+msgid "Maximizes the current window."
256+msgstr "የ አሁኑን መስኮት ማሳደጊያ"
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:292
259+msgid "Ctrl + Super + Down"
260+msgstr "Ctrl + Super + Down"
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:297
263+msgid "Minimizes or restores the current window."
264+msgstr "የ አሁኑን መስኮትማሳነሻ ወይንም እንደ ነበር መመለሻ"
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:305
267+msgid "Ctrl + Super + Left or Right"
268+msgstr "Ctrl + Super + Left or Right"
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:310
271+msgid "Semi-maximizes the current window."
272+msgstr "የ አሁኑን መስኮት በ ንዑስ-ማሳደጊያ"
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:318
275+msgid "Alt + F4"
276+msgstr "Alt + F4"
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:323
279+msgid "Closes the current window."
280+msgstr "የ አሁኑን መስኮት መዝጊያ"
281+
282+#: qml/Components/Lockscreen.qml:239
123283msgid "Return to Call"
124284msgstr "ወደ ጥሪ መመለሻ"
125285
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Emergency Call"
128288msgstr "የ ድንገተኛ ጥሪ"
129289
130−#: qml/Components/Lockscreen.qml:263
290+#: qml/Components/Lockscreen.qml:271
131291msgid "OK"
132292msgstr "እሺ"
133293
294+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
295+#, qt-format
296+msgid "%1:%2:%3"
297+msgstr "%1:%2:%3"
298+
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
300+#, qt-format
301+msgid "%1:%2"
302+msgstr "%1:%2"
303+
134304#: qml/Components/ModeSwitchWarningDialog.qml:32
135305msgid "Apps may have unsaved data:"
136306msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
@@ -157,6 +327,10 @@ msgstr "አሁን እንደገና መገናኛ!"
157327msgid "Close all"
158328msgstr "ሁሉንም መዝጊያ"
159329
330+#: qml/Components/SharingPicker.qml:54
331+msgid "Preview Share Item"
332+msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
333+
160334#: qml/Dash/DashPageHeader.qml:333
161335msgctxt "Button: Open the Ubuntu Store"
162336msgid "Store"
@@ -188,15 +362,15 @@ msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
188362msgid "Reset"
189363msgstr "እንደ ነበረ መመለሻ"
190364
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
365+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192366msgid "Show less"
193−msgstr ""
367+msgstr "ትንሽ ማሳያ"
194368
195−#: qml/Dash/GenericScopeView.qml:579
369+#: qml/Dash/GenericScopeView.qml:580
196370msgid "Show all"
197−msgstr ""
371+msgstr "ሁሉንም ማሳያ"
198372
199−#: qml/Dash/GenericScopeView.qml:636
373+#: qml/Dash/GenericScopeView.qml:637
200374msgctxt "Label: Hint for dash search line edit"
201375msgid "Search"
202376msgstr "መፈለጊያ"
@@ -230,10 +404,6 @@ msgstr "ለዚህ ደረጃ ይስጡ"
230404msgid "Add a review"
231405msgstr "ግምገማ መጨመሪያ"
232406
233−#: qml/Dash/Previews/PreviewSharing.qml:66
234−msgid "Preview Share Item"
235−msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
236−
237407#: qml/Dash/PullToRefreshScopeStyle.qml:55
238408msgid "Pull to refresh…"
239409msgstr "ይሳቡ ለማነቃቃት…"
@@ -250,11 +420,11 @@ msgstr "የአካባቢ ዳታ ማስቻያ"
250420msgid "Manage"
251421msgstr "አስተዳዳሪ"
252422
253−#: qml/Dash/ScopesList.qml:101
423+#: qml/Dash/ScopesList.qml:102
254424msgid "Home"
255425msgstr "ቤት"
256426
257−#: qml/Dash/ScopesList.qml:102
427+#: qml/Dash/ScopesList.qml:103
258428msgid "Also installed"
259429msgstr "እንዲሁም የተገጠሙ"
260430
@@ -264,17 +434,29 @@ msgid ""
264434"touch pad to interact with the pointer."
265435msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
266436
267−#: qml/Greeter/CoverPage.qml:118
437+#: qml/Greeter/CoverPage.qml:127
268438msgid "Unlock"
269439msgstr "መክፈቻ"
270440
271−#: qml/Greeter/LoginList.qml:239
441+#: qml/Greeter/Greeter.qml:539
442+msgid "Try again"
443+msgstr "እንደገና ይሞክሩ"
444+
445+#: qml/Greeter/LoginList.qml:63
446+msgid "Passphrase"
447+msgstr "የማለፊያ ሐረግ"
448+
449+#: qml/Greeter/LoginList.qml:64
450+msgid "Passcode"
451+msgstr "ማለፊያ ኮድ"
452+
453+#: qml/Greeter/LoginList.qml:259
272454msgid "Retry"
273455msgstr "እንደገና ይሞክሩ"
274456
275−#: qml/Greeter/LoginList.qml:240
276−msgid "Tap to unlock"
277−msgstr "ለመክፈት መታ ያድርጉ"
457+#: qml/Greeter/LoginList.qml:260
458+msgid "Log In"
459+msgstr "መግቢያ"
278460
279461#: qml/Greeter/NarrowView.qml:54
280462msgid "Sorry, incorrect passphrase."
@@ -304,34 +486,34 @@ msgstr ""
304486"የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
305487"ይጠፋል"
306488
307−#: qml/Greeter/NarrowView.qml:116
489+#: qml/Greeter/NarrowView.qml:129
308490#, qt-format
309491msgid "Enter %1"
310492msgstr "ማስገቢያ %1"
311493
312−#: qml/Greeter/NarrowView.qml:117
494+#: qml/Greeter/NarrowView.qml:130
313495msgid "Enter passphrase"
314496msgstr "የ ማለፊያ ሀረግ ያስገቡ"
315497
316−#: qml/Greeter/NarrowView.qml:118
498+#: qml/Greeter/NarrowView.qml:131
317499msgid "Enter passcode"
318500msgstr "የ ማለፊያ ኮድ ያስገቡ"
319501
320−#: qml/Greeter/NarrowView.qml:119
502+#: qml/Greeter/NarrowView.qml:135
321503#, qt-format
322504msgid "Sorry, incorrect %1"
323505msgstr "አዝናለሁ: የተሳሳተ%1"
324506
325−#: qml/Greeter/NarrowView.qml:120
507+#: qml/Greeter/NarrowView.qml:136
326508msgid "Sorry, incorrect passphrase"
327509msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
328510
329−#: qml/Greeter/NarrowView.qml:121
511+#: qml/Greeter/NarrowView.qml:137
330512msgctxt "passphrase"
331513msgid "Please re-enter"
332514msgstr "እባክዎን እንደገና-ያስገቡ"
333515
334−#: qml/Greeter/NarrowView.qml:122
516+#: qml/Greeter/NarrowView.qml:138
335517msgid "Sorry, incorrect passcode"
336518msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
337519
@@ -426,49 +608,25 @@ msgstr "መልሶ መደወያ"
426608msgid "Drag using 3 fingers any application from one window to the other"
427609msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
428610
429−#: qml/Tutorial/TutorialBottom.qml:78
430−msgid "Swipe up to add a contact"
431−msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
432−
433−#: qml/Tutorial/TutorialBottom.qml:80
434−msgid "Swipe up for favorite calculations"
435−msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
436−
437−#: qml/Tutorial/TutorialBottom.qml:82
438−msgid "Swipe up for recent calls"
439−msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
440−
441−#: qml/Tutorial/TutorialBottom.qml:84
442−msgid "Swipe up to create a message"
443−msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
444−
445−#: qml/Tutorial/TutorialBottom.qml:85
446−msgid "Swipe up to manage the app"
447−msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
448−
449−#: qml/Tutorial/TutorialLeftLong.qml:47
611+#: qml/Tutorial/TutorialLeftLong.qml:49
450612msgid "Long swipe from the left edge to open the Today scope"
451613msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
452614
453615#: qml/Tutorial/TutorialLeft.qml:47
454−msgid "Swipe from the left edge to open the launcher"
455−msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
616+msgid "Short swipe from the left edge to open the launcher"
617+msgstr "በ አጭሩ ይጥረጉ ከ ግራ ጠርዝ በኩል ማስጀመሪያውን ለ መክፈት"
456618
457619#: qml/Tutorial/TutorialRight.qml:55
458620msgid "Push your mouse against the right edge to view your open apps"
459−msgstr ""
621+msgstr "የ እርስዎን አይጥ መጠቆሚያ ወደ ቀኝ ጠርዝ በኩል ያስጠጉ የ ተከፈቱ መተግበሪያዎችን ለ መመልከት"
460622
461623#: qml/Tutorial/TutorialRight.qml:56
462−msgid "Short or long swipe from the right edge to view your open apps"
463−msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
624+msgid "Swipe from the right edge to view your open apps"
625+msgstr "ከ ቀኝ በኩል ይጥረጉ የ ተከፈቱ መተግበሪያዎችን ለ መመልከት"
464626
465627#: qml/Tutorial/TutorialTop.qml:53
466−msgid "Swipe from the top right edge to open the notification bar"
467−msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
468−
469−#: qml/Tutorial/TutorialTop.qml:54
470−msgid "Swipe from the top edge to open the notification bar"
471−msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
628+msgid "Swipe from the top edge to access notifications and quick settings"
629+msgstr "ከ ላይ ጠረዝ በኩል ይጥረጉ ማስታወቂያዎች እና በፍጥነት ማሰናጃዎች ጋር ለ መድረስ"
472630
473631#: qml/Wizard/Page.qml:54
474632msgctxt "Button: Go back one page in the Wizard"
@@ -479,15 +637,32 @@ msgstr "ወደ ኋላ"
479637msgid "Language"
480638msgstr "ቋንቋ"
481639
482−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
640+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
483641#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
484642#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
485643#: qml/Wizard/Pages/75-report-check.qml:84
486−#: qml/Wizard/Pages/passcode-desktop.qml:124
644+#: qml/Wizard/Pages/passcode-desktop.qml:141
487645#: qml/Wizard/Pages/password-set.qml:141
488646msgid "Next"
489647msgstr "ይቀጥሉ"
490648
649+#: qml/Wizard/Pages/20-keyboard.qml:30
650+msgid "Select Keyboard"
651+msgstr ""
652+
653+#: qml/Wizard/Pages/20-keyboard.qml:70
654+msgid "Keyboard language"
655+msgstr ""
656+
657+#: qml/Wizard/Pages/20-keyboard.qml:92
658+msgid "Keyboard layout"
659+msgstr ""
660+
661+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
662+#: qml/Wizard/Pages/sim.qml:101
663+msgid "Skip"
664+msgstr "መዝለያ"
665+
491666#: qml/Wizard/Pages/30-wifi.qml:29
492667msgid "Connect to Wi‑Fi"
493668msgstr "ወደ ዋይ‑ፋይ መገናኛ"
@@ -504,11 +679,6 @@ msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
504679msgid "No available Wi-Fi networks"
505680msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
506681
507−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508−#: qml/Wizard/Pages/sim.qml:101
509−msgid "Skip"
510−msgstr "መዝለያ"
511−
512682#: qml/Wizard/Pages/40-location.qml:27
513683msgid "Location Services"
514684msgstr "የ አካባቢ ግልጋሎት"
@@ -592,6 +762,35 @@ msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና
592762msgid "Privacy policy"
593763msgstr "የ ግላዊነት መመሪያ"
594764
765+#: qml/Wizard/Pages/77-system-update.qml:28
766+msgid "Update Device"
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:55
770+msgid ""
771+"There is a system update available and ready to install. Afterwards, the "
772+"device will automatically restart."
773+msgstr ""
774+
775+#: qml/Wizard/Pages/77-system-update.qml:76
776+msgctxt "string identifying name of the update"
777+msgid "Ubuntu system"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:83
781+#, qt-format
782+msgctxt "version of the system update"
783+msgid "Version %1"
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:102
787+msgid "This could take a few minutes..."
788+msgstr ""
789+
790+#: qml/Wizard/Pages/77-system-update.qml:116
791+msgid "Install and restart now"
792+msgstr ""
793+
595794#: qml/Wizard/Pages/80-finished.qml:89
596795msgid "Welcome to Ubuntu"
597796msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
@@ -637,7 +836,7 @@ msgid "Service Terms"
637836msgstr "የ ግልጋሎት ስምምነቶች"
638837
639838#: qml/Wizard/Pages/passcode-confirm.qml:43
640−#: qml/Wizard/Pages/passcode-desktop.qml:80
839+#: qml/Wizard/Pages/passcode-desktop.qml:96
641840msgid "Confirm passcode"
642841msgstr "የማለፊያ ኮድ ማረጋገጫ"
643842
@@ -654,24 +853,24 @@ msgstr "እባክዎን እንደገና-ያስገቡ"
654853msgid "Lock Screen Passcode"
655854msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
656855
657−#: qml/Wizard/Pages/passcode-desktop.qml:56
856+#: qml/Wizard/Pages/passcode-desktop.qml:60
658857msgid "Enter 4 numbers to setup your passcode"
659858msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
660859
661−#: qml/Wizard/Pages/passcode-desktop.qml:65
860+#: qml/Wizard/Pages/passcode-desktop.qml:76
662861#: qml/Wizard/Pages/passcode-set.qml:54
663862msgid "Choose passcode"
664863msgstr "የ ማለፊያ ኮድ ይምረጡ"
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:105
865+#: qml/Wizard/Pages/passcode-desktop.qml:126
667866msgid "Passcode too short"
668867msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
669868
670−#: qml/Wizard/Pages/passcode-desktop.qml:107
869+#: qml/Wizard/Pages/passcode-desktop.qml:128
671870msgid "Passcodes match"
672871msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
673872
674−#: qml/Wizard/Pages/passcode-desktop.qml:109
873+#: qml/Wizard/Pages/passcode-desktop.qml:130
675874msgid "Passcodes do not match"
676875msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
677876
@@ -720,26 +919,30 @@ msgid "To proceed with no SIM tap Skip."
720919msgstr "ያለ ሲም ለ መቀጠል መዝለያውን መታ ያድርጉ"
721920
722921#: qml/Wizard/PasswordMeter.qml:87
922+msgid "Password too short"
923+msgstr "የ መግቢያ ቃል በጣም አጭር ነው"
924+
925+#: qml/Wizard/PasswordMeter.qml:89
723926msgid "Passwords match"
724927msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ ናቸው"
725928
726−#: qml/Wizard/PasswordMeter.qml:89
929+#: qml/Wizard/PasswordMeter.qml:91
727930msgid "Passwords do not match"
728931msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ አይደሉም"
729932
730−#: qml/Wizard/PasswordMeter.qml:93
933+#: qml/Wizard/PasswordMeter.qml:95
731934msgid "Strong password"
732935msgstr "ጠንካራ የ መግቢያ ቃል"
733936
734−#: qml/Wizard/PasswordMeter.qml:95
937+#: qml/Wizard/PasswordMeter.qml:97
735938msgid "Fair password"
736939msgstr "ደህና የ መግቢያ ቃል"
737940
738−#: qml/Wizard/PasswordMeter.qml:97
941+#: qml/Wizard/PasswordMeter.qml:99
739942msgid "Weak password"
740943msgstr "ደካማ የ መግቢያ ቃል"
741944
742−#: qml/Wizard/PasswordMeter.qml:99
945+#: qml/Wizard/PasswordMeter.qml:101
743946msgid "Very weak password"
744947msgstr "በጣም ደካማ የ መግቢያ ቃል"
745948
@@ -988,6 +1191,9 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
9881191#~ msgid "View all your running tasks."
9891192#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
9901193
1194+#~ msgid "Tap to unlock"
1195+#~ msgstr "ለመክፈት መታ ያድርጉ"
1196+
9911197#~ msgctxt "Button: Shut down the system"
9921198#~ msgid "Shut down"
9931199#~ msgstr "ማጥፊያ"
@@ -1057,5 +1263,32 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
10571263#~ msgid "Call back"
10581264#~ msgstr "መልሶ መደወያ"
10591265
1266+#~ msgid "Swipe up for recent calls"
1267+#~ msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
1268+
1269+#~ msgid "Swipe up for favorite calculations"
1270+#~ msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
1271+
1272+#~ msgid "Swipe up to manage the app"
1273+#~ msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
1274+
1275+#~ msgid "Swipe up to create a message"
1276+#~ msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
1277+
1278+#~ msgid "Swipe up to add a contact"
1279+#~ msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
1280+
1281+#~ msgid "Swipe from the top right edge to open the notification bar"
1282+#~ msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
1283+
1284+#~ msgid "Swipe from the top edge to open the notification bar"
1285+#~ msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
1286+
1287+#~ msgid "Short or long swipe from the right edge to view your open apps"
1288+#~ msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
1289+
1290+#~ msgid "Swipe from the left edge to open the launcher"
1291+#~ msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
1292+
10601293#~ msgid "Hover your mouse on the right edge to view your open apps"
10611294#~ msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
po/ar.po+300−94
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-07-29 09:41+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
20+"X-Generator: Launchpad (build 18179)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "كلمة السر: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
2828msgid "Pin shortcut"
2929msgstr "تثبيت الاختصار"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
3232msgid "Quit"
3333msgstr "خروج"
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
3636msgid "Unpin shortcut"
3737msgstr "إزالة تثبيت الاختصار"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
4040msgid "Device Locked"
4141msgstr "الجهاز موصد"
4242
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
4444msgid "You have been locked out due to too many failed passphrase attempts."
4545msgstr ""
4646"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للعبارة السرّية."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للرمز السرّي."
5252
53−#: qml/Components/DelayedLockscreen.qml:74
53+#: qml/Components/DelayedLockscreen.qml:75
5454#, qt-format
5555msgid "Please wait %1 minute and then try again…"
5656msgid_plural "Please wait %1 minutes and then try again…"
@@ -61,54 +61,54 @@ msgstr[3] "برجاء الانتظار %1 دقائق ثم المحاولة مج
6161msgstr[4] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
6262msgstr[5] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
6363
64−#: qml/Components/Dialogs.qml:144
64+#: qml/Components/Dialogs.qml:146
6565msgctxt "Title: Lock/Log out dialog"
6666msgid "Log out"
6767msgstr "خروج"
6868
69−#: qml/Components/Dialogs.qml:145
69+#: qml/Components/Dialogs.qml:147
7070msgid "Are you sure you want to log out?"
7171msgstr "هل أنت متأكد من رغبتك في تسجيل الخروج؟"
7272
73−#: qml/Components/Dialogs.qml:147
73+#: qml/Components/Dialogs.qml:149
7474msgctxt "Button: Lock the system"
7575msgid "Lock"
7676msgstr "أوصِد"
7777
78−#: qml/Components/Dialogs.qml:154
78+#: qml/Components/Dialogs.qml:156
7979msgctxt "Button: Log out from the system"
8080msgid "Log Out"
8181msgstr "خروج"
8282
83−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
83+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8484#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8585#: qml/Wizard/Pages/passcode-set.qml:32
8686msgid "Cancel"
8787msgstr "إلغاء"
8888
89−#: qml/Components/Dialogs.qml:173
89+#: qml/Components/Dialogs.qml:175
9090msgctxt "Title: Reboot dialog"
9191msgid "Reboot"
9292msgstr "إعادة التشغيل"
9393
94−#: qml/Components/Dialogs.qml:174
94+#: qml/Components/Dialogs.qml:176
9595msgid "Are you sure you want to reboot?"
9696msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
9797
98−#: qml/Components/Dialogs.qml:176
98+#: qml/Components/Dialogs.qml:178
9999msgid "No"
100100msgstr "لا"
101101
102−#: qml/Components/Dialogs.qml:182
102+#: qml/Components/Dialogs.qml:184
103103msgid "Yes"
104104msgstr "نعم"
105105
106−#: qml/Components/Dialogs.qml:197
106+#: qml/Components/Dialogs.qml:199
107107msgctxt "Title: Power off/Restart dialog"
108108msgid "Power"
109109msgstr "الطاقة"
110110
111−#: qml/Components/Dialogs.qml:198
111+#: qml/Components/Dialogs.qml:200
112112msgid ""
113113"Are you sure you would like\n"
114114"to power off?"
@@ -116,28 +116,198 @@ msgstr ""
116116"هل أنت متأكد من رغبتك\n"
117117"في إيقاف التشغيل؟"
118118
119−#: qml/Components/Dialogs.qml:200
119+#: qml/Components/Dialogs.qml:202
120120msgctxt "Button: Power off the system"
121121msgid "Power off"
122122msgstr "إيقاف التشغيل"
123123
124−#: qml/Components/Dialogs.qml:209
124+#: qml/Components/Dialogs.qml:211
125125msgctxt "Button: Restart the system"
126126msgid "Restart"
127127msgstr "إعادة التشغيل"
128128
129−#: qml/Components/Lockscreen.qml:231
129+#: qml/Components/KeyboardShortcutsOverlay.qml:41
130+msgid "Keyboard Shortcuts"
131+msgstr ""
132+
133+#: qml/Components/KeyboardShortcutsOverlay.qml:55
134+msgid "Unity 8"
135+msgstr ""
136+
137+#: qml/Components/KeyboardShortcutsOverlay.qml:62
138+msgid "PrtScr"
139+msgstr ""
140+
141+#: qml/Components/KeyboardShortcutsOverlay.qml:67
142+msgid "Takes a screenshot."
143+msgstr ""
144+
145+#: qml/Components/KeyboardShortcutsOverlay.qml:75
146+msgid "Alt + PrtScr"
147+msgstr ""
148+
149+#: qml/Components/KeyboardShortcutsOverlay.qml:80
150+msgid "Takes a screenshot of a window."
151+msgstr ""
152+
153+#: qml/Components/KeyboardShortcutsOverlay.qml:88
154+msgid "Super + Space"
155+msgstr ""
156+
157+#: qml/Components/KeyboardShortcutsOverlay.qml:93
158+msgid "Switches to next keyboard layout."
159+msgstr ""
160+
161+#: qml/Components/KeyboardShortcutsOverlay.qml:101
162+msgid "Super + Shift + Space"
163+msgstr ""
164+
165+#: qml/Components/KeyboardShortcutsOverlay.qml:106
166+msgid "Switches to previous keyboard layout."
167+msgstr ""
168+
169+#: qml/Components/KeyboardShortcutsOverlay.qml:118
170+msgid "Launcher"
171+msgstr ""
172+
173+#: qml/Components/KeyboardShortcutsOverlay.qml:125
174+msgid "Super (Hold)"
175+msgstr ""
176+
177+#: qml/Components/KeyboardShortcutsOverlay.qml:130
178+msgid "Opens the launcher, displays shortcuts."
179+msgstr ""
180+
181+#: qml/Components/KeyboardShortcutsOverlay.qml:138
182+msgid "Alt + F1"
183+msgstr ""
184+
185+#: qml/Components/KeyboardShortcutsOverlay.qml:143
186+msgid "Opens launcher keyboard navigation mode."
187+msgstr ""
188+
189+#: qml/Components/KeyboardShortcutsOverlay.qml:151
190+msgid "Super + Tab"
191+msgstr ""
192+
193+#: qml/Components/KeyboardShortcutsOverlay.qml:156
194+msgid "Switches applications via the launcher."
195+msgstr ""
196+
197+#: qml/Components/KeyboardShortcutsOverlay.qml:164
198+msgid "Super + 0 to 9"
199+msgstr ""
200+
201+#: qml/Components/KeyboardShortcutsOverlay.qml:169
202+msgid "Same as clicking on a launcher icon."
203+msgstr ""
204+
205+#: qml/Components/KeyboardShortcutsOverlay.qml:181
206+msgid "Scopes"
207+msgstr ""
208+
209+#: qml/Components/KeyboardShortcutsOverlay.qml:188
210+msgid "Super (Tap)"
211+msgstr ""
212+
213+#: qml/Components/KeyboardShortcutsOverlay.qml:193
214+msgid "Opens the Scopes home."
215+msgstr ""
216+
217+#: qml/Components/KeyboardShortcutsOverlay.qml:209
218+msgid "Switching"
219+msgstr ""
220+
221+#: qml/Components/KeyboardShortcutsOverlay.qml:216
222+msgid "Alt + Tab"
223+msgstr ""
224+
225+#: qml/Components/KeyboardShortcutsOverlay.qml:221
226+msgid "Switches between applications."
227+msgstr ""
228+
229+#: qml/Components/KeyboardShortcutsOverlay.qml:229
230+msgid "Super + W"
231+msgstr ""
232+
233+#: qml/Components/KeyboardShortcutsOverlay.qml:234
234+msgid "Opens the desktop spread."
235+msgstr ""
236+
237+#: qml/Components/KeyboardShortcutsOverlay.qml:242
238+msgid "Cursor Left or Right"
239+msgstr ""
240+
241+#: qml/Components/KeyboardShortcutsOverlay.qml:247
242+msgid "Moves the focus."
243+msgstr ""
244+
245+#: qml/Components/KeyboardShortcutsOverlay.qml:259
246+msgid "Windows"
247+msgstr ""
248+
249+#: qml/Components/KeyboardShortcutsOverlay.qml:266
250+msgid "Ctrl + Super + D"
251+msgstr ""
252+
253+#: qml/Components/KeyboardShortcutsOverlay.qml:271
254+msgid "Minimizes all windows."
255+msgstr ""
256+
257+#: qml/Components/KeyboardShortcutsOverlay.qml:279
258+msgid "Ctrl + Super + Up"
259+msgstr ""
260+
261+#: qml/Components/KeyboardShortcutsOverlay.qml:284
262+msgid "Maximizes the current window."
263+msgstr ""
264+
265+#: qml/Components/KeyboardShortcutsOverlay.qml:292
266+msgid "Ctrl + Super + Down"
267+msgstr ""
268+
269+#: qml/Components/KeyboardShortcutsOverlay.qml:297
270+msgid "Minimizes or restores the current window."
271+msgstr ""
272+
273+#: qml/Components/KeyboardShortcutsOverlay.qml:305
274+msgid "Ctrl + Super + Left or Right"
275+msgstr ""
276+
277+#: qml/Components/KeyboardShortcutsOverlay.qml:310
278+msgid "Semi-maximizes the current window."
279+msgstr ""
280+
281+#: qml/Components/KeyboardShortcutsOverlay.qml:318
282+msgid "Alt + F4"
283+msgstr ""
284+
285+#: qml/Components/KeyboardShortcutsOverlay.qml:323
286+msgid "Closes the current window."
287+msgstr ""
288+
289+#: qml/Components/Lockscreen.qml:239
130290msgid "Return to Call"
131291msgstr "العودة إلى المكالمة"
132292
133−#: qml/Components/Lockscreen.qml:231
293+#: qml/Components/Lockscreen.qml:239
134294msgid "Emergency Call"
135295msgstr "مكالمة طوارئ"
136296
137−#: qml/Components/Lockscreen.qml:263
297+#: qml/Components/Lockscreen.qml:271
138298msgid "OK"
139299msgstr "موافق"
140300
301+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
302+#, qt-format
303+msgid "%1:%2:%3"
304+msgstr ""
305+
306+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
307+#, qt-format
308+msgid "%1:%2"
309+msgstr ""
310+
141311#: qml/Components/ModeSwitchWarningDialog.qml:32
142312msgid "Apps may have unsaved data:"
143313msgstr ""
@@ -164,6 +334,10 @@ msgstr ""
164334msgid "Close all"
165335msgstr ""
166336
337+#: qml/Components/SharingPicker.qml:54
338+msgid "Preview Share Item"
339+msgstr ""
340+
167341#: qml/Dash/DashPageHeader.qml:333
168342msgctxt "Button: Open the Ubuntu Store"
169343msgid "Store"
@@ -195,15 +369,15 @@ msgstr ""
195369msgid "Reset"
196370msgstr ""
197371
198−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
372+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
199373msgid "Show less"
200374msgstr ""
201375
202−#: qml/Dash/GenericScopeView.qml:579
376+#: qml/Dash/GenericScopeView.qml:580
203377msgid "Show all"
204378msgstr ""
205379
206−#: qml/Dash/GenericScopeView.qml:636
380+#: qml/Dash/GenericScopeView.qml:637
207381msgctxt "Label: Hint for dash search line edit"
208382msgid "Search"
209383msgstr "بحث"
@@ -237,10 +411,6 @@ msgstr "قيّم ذلك"
237411msgid "Add a review"
238412msgstr "أضف تعليق"
239413
240−#: qml/Dash/Previews/PreviewSharing.qml:66
241−msgid "Preview Share Item"
242−msgstr ""
243−
244414#: qml/Dash/PullToRefreshScopeStyle.qml:55
245415msgid "Pull to refresh…"
246416msgstr "اسحب للتحديث..."
@@ -257,11 +427,11 @@ msgstr "تفعيل بيانات الموقع"
257427msgid "Manage"
258428msgstr "إدارة"
259429
260−#: qml/Dash/ScopesList.qml:101
430+#: qml/Dash/ScopesList.qml:102
261431msgid "Home"
262432msgstr "الرئيسية"
263433
264−#: qml/Dash/ScopesList.qml:102
434+#: qml/Dash/ScopesList.qml:103
265435msgid "Also installed"
266436msgstr "أيضا تم تثبيت"
267437
@@ -271,17 +441,29 @@ msgid ""
271441"touch pad to interact with the pointer."
272442msgstr ""
273443
274−#: qml/Greeter/CoverPage.qml:118
444+#: qml/Greeter/CoverPage.qml:127
275445msgid "Unlock"
276446msgstr "فك القفل"
277447
278−#: qml/Greeter/LoginList.qml:239
448+#: qml/Greeter/Greeter.qml:539
449+msgid "Try again"
450+msgstr ""
451+
452+#: qml/Greeter/LoginList.qml:63
453+msgid "Passphrase"
454+msgstr ""
455+
456+#: qml/Greeter/LoginList.qml:64
457+msgid "Passcode"
458+msgstr ""
459+
460+#: qml/Greeter/LoginList.qml:259
279461msgid "Retry"
280462msgstr "إعادة المحاولة"
281463
282−#: qml/Greeter/LoginList.qml:240
283−msgid "Tap to unlock"
284−msgstr "انقر لفك القفل"
464+#: qml/Greeter/LoginList.qml:260
465+msgid "Log In"
466+msgstr ""
285467
286468#: qml/Greeter/NarrowView.qml:54
287469msgid "Sorry, incorrect passphrase."
@@ -311,34 +493,34 @@ msgstr ""
311493"إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
312494"المصنع وسيتم حذف كافة البيانات الشخصية."
313495
314−#: qml/Greeter/NarrowView.qml:116
496+#: qml/Greeter/NarrowView.qml:129
315497#, qt-format
316498msgid "Enter %1"
317499msgstr "أدخِل %1"
318500
319−#: qml/Greeter/NarrowView.qml:117
501+#: qml/Greeter/NarrowView.qml:130
320502msgid "Enter passphrase"
321503msgstr "أدخِل العبارة السرية"
322504
323−#: qml/Greeter/NarrowView.qml:118
505+#: qml/Greeter/NarrowView.qml:131
324506msgid "Enter passcode"
325507msgstr "أدخِل الرمز السرّي"
326508
327−#: qml/Greeter/NarrowView.qml:119
509+#: qml/Greeter/NarrowView.qml:135
328510#, qt-format
329511msgid "Sorry, incorrect %1"
330512msgstr "نأسف، %1 غير صحيحية"
331513
332−#: qml/Greeter/NarrowView.qml:120
514+#: qml/Greeter/NarrowView.qml:136
333515msgid "Sorry, incorrect passphrase"
334516msgstr "نأسف، عبارة السّر غير صحيحية"
335517
336−#: qml/Greeter/NarrowView.qml:121
518+#: qml/Greeter/NarrowView.qml:137
337519msgctxt "passphrase"
338520msgid "Please re-enter"
339521msgstr "برجاء إعادة إدخالها"
340522
341−#: qml/Greeter/NarrowView.qml:122
523+#: qml/Greeter/NarrowView.qml:138
342524msgid "Sorry, incorrect passcode"
343525msgstr "نأسف، الرمز السري غير صحيح"
344526
@@ -445,32 +627,12 @@ msgstr ""
445627msgid "Drag using 3 fingers any application from one window to the other"
446628msgstr ""
447629
448−#: qml/Tutorial/TutorialBottom.qml:78
449−msgid "Swipe up to add a contact"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:80
453−msgid "Swipe up for favorite calculations"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialBottom.qml:82
457−msgid "Swipe up for recent calls"
458−msgstr ""
459−
460−#: qml/Tutorial/TutorialBottom.qml:84
461−msgid "Swipe up to create a message"
462−msgstr ""
463−
464−#: qml/Tutorial/TutorialBottom.qml:85
465−msgid "Swipe up to manage the app"
466−msgstr ""
467−
468−#: qml/Tutorial/TutorialLeftLong.qml:47
630+#: qml/Tutorial/TutorialLeftLong.qml:49
469631msgid "Long swipe from the left edge to open the Today scope"
470632msgstr ""
471633
472634#: qml/Tutorial/TutorialLeft.qml:47
473−msgid "Swipe from the left edge to open the launcher"
635+msgid "Short swipe from the left edge to open the launcher"
474636msgstr ""
475637
476638#: qml/Tutorial/TutorialRight.qml:55
@@ -478,15 +640,11 @@ msgid "Push your mouse against the right edge to view your open apps"
478640msgstr ""
479641
480642#: qml/Tutorial/TutorialRight.qml:56
481−msgid "Short or long swipe from the right edge to view your open apps"
643+msgid "Swipe from the right edge to view your open apps"
482644msgstr ""
483645
484646#: qml/Tutorial/TutorialTop.qml:53
485−msgid "Swipe from the top right edge to open the notification bar"
486−msgstr ""
487−
488−#: qml/Tutorial/TutorialTop.qml:54
489−msgid "Swipe from the top edge to open the notification bar"
647+msgid "Swipe from the top edge to access notifications and quick settings"
490648msgstr ""
491649
492650#: qml/Wizard/Page.qml:54
@@ -498,15 +656,32 @@ msgstr "عودة"
498656msgid "Language"
499657msgstr ""
500658
501−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
659+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
502660#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
503661#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
504662#: qml/Wizard/Pages/75-report-check.qml:84
505−#: qml/Wizard/Pages/passcode-desktop.qml:124
663+#: qml/Wizard/Pages/passcode-desktop.qml:141
506664#: qml/Wizard/Pages/password-set.qml:141
507665msgid "Next"
508666msgstr ""
509667
668+#: qml/Wizard/Pages/20-keyboard.qml:30
669+msgid "Select Keyboard"
670+msgstr ""
671+
672+#: qml/Wizard/Pages/20-keyboard.qml:70
673+msgid "Keyboard language"
674+msgstr ""
675+
676+#: qml/Wizard/Pages/20-keyboard.qml:92
677+msgid "Keyboard layout"
678+msgstr ""
679+
680+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
681+#: qml/Wizard/Pages/sim.qml:101
682+msgid "Skip"
683+msgstr "تخطي"
684+
510685#: qml/Wizard/Pages/30-wifi.qml:29
511686msgid "Connect to Wi‑Fi"
512687msgstr "اتصل بالواي فاي"
@@ -523,11 +698,6 @@ msgstr ""
523698msgid "No available Wi-Fi networks"
524699msgstr ""
525700
526−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
527−#: qml/Wizard/Pages/sim.qml:101
528−msgid "Skip"
529−msgstr "تخطي"
530−
531701#: qml/Wizard/Pages/40-location.qml:27
532702msgid "Location Services"
533703msgstr ""
@@ -611,6 +781,35 @@ msgstr ""
611781msgid "Privacy policy"
612782msgstr ""
613783
784+#: qml/Wizard/Pages/77-system-update.qml:28
785+msgid "Update Device"
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:55
789+msgid ""
790+"There is a system update available and ready to install. Afterwards, the "
791+"device will automatically restart."
792+msgstr ""
793+
794+#: qml/Wizard/Pages/77-system-update.qml:76
795+msgctxt "string identifying name of the update"
796+msgid "Ubuntu system"
797+msgstr ""
798+
799+#: qml/Wizard/Pages/77-system-update.qml:83
800+#, qt-format
801+msgctxt "version of the system update"
802+msgid "Version %1"
803+msgstr ""
804+
805+#: qml/Wizard/Pages/77-system-update.qml:102
806+msgid "This could take a few minutes..."
807+msgstr ""
808+
809+#: qml/Wizard/Pages/77-system-update.qml:116
810+msgid "Install and restart now"
811+msgstr ""
812+
614813#: qml/Wizard/Pages/80-finished.qml:89
615814msgid "Welcome to Ubuntu"
616815msgstr ""
@@ -654,7 +853,7 @@ msgid "Service Terms"
654853msgstr ""
655854
656855#: qml/Wizard/Pages/passcode-confirm.qml:43
657−#: qml/Wizard/Pages/passcode-desktop.qml:80
856+#: qml/Wizard/Pages/passcode-desktop.qml:96
658857msgid "Confirm passcode"
659858msgstr "تأكيد الرمز السري"
660859
@@ -671,24 +870,24 @@ msgstr ""
671870msgid "Lock Screen Passcode"
672871msgstr ""
673872
674−#: qml/Wizard/Pages/passcode-desktop.qml:56
873+#: qml/Wizard/Pages/passcode-desktop.qml:60
675874msgid "Enter 4 numbers to setup your passcode"
676875msgstr ""
677876
678−#: qml/Wizard/Pages/passcode-desktop.qml:65
877+#: qml/Wizard/Pages/passcode-desktop.qml:76
679878#: qml/Wizard/Pages/passcode-set.qml:54
680879msgid "Choose passcode"
681880msgstr ""
682881
683−#: qml/Wizard/Pages/passcode-desktop.qml:105
882+#: qml/Wizard/Pages/passcode-desktop.qml:126
684883msgid "Passcode too short"
685884msgstr ""
686885
687−#: qml/Wizard/Pages/passcode-desktop.qml:107
886+#: qml/Wizard/Pages/passcode-desktop.qml:128
688887msgid "Passcodes match"
689888msgstr ""
690889
691−#: qml/Wizard/Pages/passcode-desktop.qml:109
890+#: qml/Wizard/Pages/passcode-desktop.qml:130
692891msgid "Passcodes do not match"
693892msgstr ""
694893
@@ -737,26 +936,30 @@ msgid "To proceed with no SIM tap Skip."
737936msgstr ""
738937
739938#: qml/Wizard/PasswordMeter.qml:87
740−msgid "Passwords match"
939+msgid "Password too short"
741940msgstr ""
742941
743942#: qml/Wizard/PasswordMeter.qml:89
943+msgid "Passwords match"
944+msgstr ""
945+
946+#: qml/Wizard/PasswordMeter.qml:91
744947msgid "Passwords do not match"
745948msgstr ""
746949
747−#: qml/Wizard/PasswordMeter.qml:93
950+#: qml/Wizard/PasswordMeter.qml:95
748951msgid "Strong password"
749952msgstr ""
750953
751−#: qml/Wizard/PasswordMeter.qml:95
954+#: qml/Wizard/PasswordMeter.qml:97
752955msgid "Fair password"
753956msgstr ""
754957
755−#: qml/Wizard/PasswordMeter.qml:97
958+#: qml/Wizard/PasswordMeter.qml:99
756959msgid "Weak password"
757960msgstr ""
758961
759−#: qml/Wizard/PasswordMeter.qml:99
962+#: qml/Wizard/PasswordMeter.qml:101
760963msgid "Very weak password"
761964msgstr ""
762965
@@ -867,6 +1070,9 @@ msgstr ""
8671070#~ msgid "See all"
8681071#~ msgstr "عرض الكل"
8691072
1073+#~ msgid "Tap to unlock"
1074+#~ msgstr "انقر لفك القفل"
1075+
8701076#~ msgid "Please re-enter"
8711077#~ msgstr "برجاء إعادة إدخالها"
8721078
po/ast.po+330−97
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2016-05-16 14:07+0000\n"
1212"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
@@ -15,94 +15,94 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Contraseña: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Anclar atayu"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Colar"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Desanclar atayu"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "Preséu bloquiáu"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de fras de pasu."
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr ""
4949"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
5050
51−#: qml/Components/DelayedLockscreen.qml:74
51+#: qml/Components/DelayedLockscreen.qml:75
5252#, qt-format
5353msgid "Please wait %1 minute and then try again…"
5454msgid_plural "Please wait %1 minutes and then try again…"
5555msgstr[0] "Por favor, espera %1 minutu y vuelvi a intentalo…"
5656msgstr[1] "Por favor, espera %1 minutos y vuelvi a intentalo…"
5757
58−#: qml/Components/Dialogs.qml:144
58+#: qml/Components/Dialogs.qml:146
5959msgctxt "Title: Lock/Log out dialog"
6060msgid "Log out"
6161msgstr "Zarrar sesión"
6262
63−#: qml/Components/Dialogs.qml:145
63+#: qml/Components/Dialogs.qml:147
6464msgid "Are you sure you want to log out?"
6565msgstr "¿De xuru que quies zarrar la sesión?"
6666
67−#: qml/Components/Dialogs.qml:147
67+#: qml/Components/Dialogs.qml:149
6868msgctxt "Button: Lock the system"
6969msgid "Lock"
7070msgstr "Bloquiar"
7171
72−#: qml/Components/Dialogs.qml:154
72+#: qml/Components/Dialogs.qml:156
7373msgctxt "Button: Log out from the system"
7474msgid "Log Out"
7575msgstr "Zarrar sesión"
7676
77−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7878#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7979#: qml/Wizard/Pages/passcode-set.qml:32
8080msgid "Cancel"
8181msgstr "Encaboxar"
8282
83−#: qml/Components/Dialogs.qml:173
83+#: qml/Components/Dialogs.qml:175
8484msgctxt "Title: Reboot dialog"
8585msgid "Reboot"
8686msgstr "Reaniciu"
8787
88−#: qml/Components/Dialogs.qml:174
88+#: qml/Components/Dialogs.qml:176
8989msgid "Are you sure you want to reboot?"
9090msgstr "¿De xuru que quies reaniciar?"
9191
92−#: qml/Components/Dialogs.qml:176
92+#: qml/Components/Dialogs.qml:178
9393msgid "No"
9494msgstr "Non"
9595
96−#: qml/Components/Dialogs.qml:182
96+#: qml/Components/Dialogs.qml:184
9797msgid "Yes"
9898msgstr "Sí"
9999
100−#: qml/Components/Dialogs.qml:197
100+#: qml/Components/Dialogs.qml:199
101101msgctxt "Title: Power off/Restart dialog"
102102msgid "Power"
103103msgstr "Apagáu"
104104
105−#: qml/Components/Dialogs.qml:198
105+#: qml/Components/Dialogs.qml:200
106106msgid ""
107107"Are you sure you would like\n"
108108"to power off?"
@@ -110,28 +110,198 @@ msgstr ""
110110"¿De xuru que te prestaría\n"
111111"apagar?"
112112
113−#: qml/Components/Dialogs.qml:200
113+#: qml/Components/Dialogs.qml:202
114114msgctxt "Button: Power off the system"
115115msgid "Power off"
116116msgstr "Apagar"
117117
118−#: qml/Components/Dialogs.qml:209
118+#: qml/Components/Dialogs.qml:211
119119msgctxt "Button: Restart the system"
120120msgid "Restart"
121121msgstr "Reaniciar"
122122
123−#: qml/Components/Lockscreen.qml:231
123+#: qml/Components/KeyboardShortcutsOverlay.qml:41
124+msgid "Keyboard Shortcuts"
125+msgstr ""
126+
127+#: qml/Components/KeyboardShortcutsOverlay.qml:55
128+msgid "Unity 8"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:62
132+msgid "PrtScr"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:67
136+msgid "Takes a screenshot."
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:75
140+msgid "Alt + PrtScr"
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:80
144+msgid "Takes a screenshot of a window."
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:88
148+msgid "Super + Space"
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:93
152+msgid "Switches to next keyboard layout."
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:101
156+msgid "Super + Shift + Space"
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:106
160+msgid "Switches to previous keyboard layout."
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:118
164+msgid "Launcher"
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:125
168+msgid "Super (Hold)"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:130
172+msgid "Opens the launcher, displays shortcuts."
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:138
176+msgid "Alt + F1"
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:143
180+msgid "Opens launcher keyboard navigation mode."
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:151
184+msgid "Super + Tab"
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:156
188+msgid "Switches applications via the launcher."
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:164
192+msgid "Super + 0 to 9"
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:169
196+msgid "Same as clicking on a launcher icon."
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:181
200+msgid "Scopes"
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:188
204+msgid "Super (Tap)"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:193
208+msgid "Opens the Scopes home."
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:209
212+msgid "Switching"
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:216
216+msgid "Alt + Tab"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:221
220+msgid "Switches between applications."
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:229
224+msgid "Super + W"
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:234
228+msgid "Opens the desktop spread."
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:242
232+msgid "Cursor Left or Right"
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:247
236+msgid "Moves the focus."
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:259
240+msgid "Windows"
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:266
244+msgid "Ctrl + Super + D"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:271
248+msgid "Minimizes all windows."
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:279
252+msgid "Ctrl + Super + Up"
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:284
256+msgid "Maximizes the current window."
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:292
260+msgid "Ctrl + Super + Down"
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:297
264+msgid "Minimizes or restores the current window."
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:305
268+msgid "Ctrl + Super + Left or Right"
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:310
272+msgid "Semi-maximizes the current window."
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:318
276+msgid "Alt + F4"
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:323
280+msgid "Closes the current window."
281+msgstr ""
282+
283+#: qml/Components/Lockscreen.qml:239
124284msgid "Return to Call"
125285msgstr "Tornar a la llamada"
126286
127−#: qml/Components/Lockscreen.qml:231
287+#: qml/Components/Lockscreen.qml:239
128288msgid "Emergency Call"
129289msgstr "Llamada d'emerxencia"
130290
131−#: qml/Components/Lockscreen.qml:263
291+#: qml/Components/Lockscreen.qml:271
132292msgid "OK"
133293msgstr "Aceutar"
134294
295+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
296+#, qt-format
297+msgid "%1:%2:%3"
298+msgstr ""
299+
300+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
301+#, qt-format
302+msgid "%1:%2"
303+msgstr ""
304+
135305#: qml/Components/ModeSwitchWarningDialog.qml:32
136306msgid "Apps may have unsaved data:"
137307msgstr "Apps que pueden tener datos sin guardar:"
@@ -158,6 +328,10 @@ msgstr "Reconeutar agora."
158328msgid "Close all"
159329msgstr "Zarrar too"
160330
331+#: qml/Components/SharingPicker.qml:54
332+msgid "Preview Share Item"
333+msgstr "Entever l'elementu compartíu"
334+
161335#: qml/Dash/DashPageHeader.qml:333
162336msgctxt "Button: Open the Ubuntu Store"
163337msgid "Store"
@@ -189,15 +363,15 @@ msgstr "Refina los resultaos"
189363msgid "Reset"
190364msgstr "Reafitar"
191365
192−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
366+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
193367msgid "Show less"
194368msgstr "Ver menos"
195369
196−#: qml/Dash/GenericScopeView.qml:579
370+#: qml/Dash/GenericScopeView.qml:580
197371msgid "Show all"
198372msgstr "Ver too"
199373
200−#: qml/Dash/GenericScopeView.qml:636
374+#: qml/Dash/GenericScopeView.qml:637
201375msgctxt "Label: Hint for dash search line edit"
202376msgid "Search"
203377msgstr "Guetar"
@@ -231,10 +405,6 @@ msgstr "Valorar esto"
231405msgid "Add a review"
232406msgstr "Amestar una reseña"
233407
234−#: qml/Dash/Previews/PreviewSharing.qml:66
235−msgid "Preview Share Item"
236−msgstr "Entever l'elementu compartíu"
237−
238408#: qml/Dash/PullToRefreshScopeStyle.qml:55
239409msgid "Pull to refresh…"
240410msgstr "Tira p'anovar..."
@@ -251,11 +421,11 @@ msgstr "Habilitar datos d'allugamientu"
251421msgid "Manage"
252422msgstr "Xestionar"
253423
254−#: qml/Dash/ScopesList.qml:101
424+#: qml/Dash/ScopesList.qml:102
255425msgid "Home"
256426msgstr "Aniciu"
257427
258−#: qml/Dash/ScopesList.qml:102
428+#: qml/Dash/ScopesList.qml:103
259429msgid "Also installed"
260430msgstr "Tamién instalaos"
261431
@@ -267,17 +437,29 @@ msgstr ""
267437"El preséu agora ta coneutáu con una pantalla esterna. Usa esta pantalla como "
268438"touch pad pa interactuar col punteru."
269439
270−#: qml/Greeter/CoverPage.qml:118
440+#: qml/Greeter/CoverPage.qml:127
271441msgid "Unlock"
272442msgstr "Desbloquiar"
273443
274−#: qml/Greeter/LoginList.qml:239
444+#: qml/Greeter/Greeter.qml:539
445+msgid "Try again"
446+msgstr ""
447+
448+#: qml/Greeter/LoginList.qml:63
449+msgid "Passphrase"
450+msgstr ""
451+
452+#: qml/Greeter/LoginList.qml:64
453+msgid "Passcode"
454+msgstr ""
455+
456+#: qml/Greeter/LoginList.qml:259
275457msgid "Retry"
276458msgstr "Reintentar"
277459
278−#: qml/Greeter/LoginList.qml:240
279−msgid "Tap to unlock"
280−msgstr "Calca pa desbloquiar"
460+#: qml/Greeter/LoginList.qml:260
461+msgid "Log In"
462+msgstr ""
281463
282464#: qml/Greeter/NarrowView.qml:54
283465msgid "Sorry, incorrect passphrase."
@@ -307,34 +489,34 @@ msgstr ""
307489"Si s'inxerta'l códigu de pasu incorreutamente, el to teléfonu va reafitase y "
308490"van desaniciase tolos datos personales."
309491
310−#: qml/Greeter/NarrowView.qml:116
492+#: qml/Greeter/NarrowView.qml:129
311493#, qt-format
312494msgid "Enter %1"
313495msgstr "Introduz %1"
314496
315−#: qml/Greeter/NarrowView.qml:117
497+#: qml/Greeter/NarrowView.qml:130
316498msgid "Enter passphrase"
317499msgstr "Introduz la fras de pasu"
318500
319−#: qml/Greeter/NarrowView.qml:118
501+#: qml/Greeter/NarrowView.qml:131
320502msgid "Enter passcode"
321503msgstr "Introduz el códigu de pasu"
322504
323−#: qml/Greeter/NarrowView.qml:119
505+#: qml/Greeter/NarrowView.qml:135
324506#, qt-format
325507msgid "Sorry, incorrect %1"
326508msgstr "Sentímoslo, %1 incorreutu"
327509
328−#: qml/Greeter/NarrowView.qml:120
510+#: qml/Greeter/NarrowView.qml:136
329511msgid "Sorry, incorrect passphrase"
330512msgstr "Sentímoslo, contraseña incorreuta"
331513
332−#: qml/Greeter/NarrowView.qml:121
514+#: qml/Greeter/NarrowView.qml:137
333515msgctxt "passphrase"
334516msgid "Please re-enter"
335517msgstr "Vuelve a escribila"
336518
337−#: qml/Greeter/NarrowView.qml:122
519+#: qml/Greeter/NarrowView.qml:138
338520msgid "Sorry, incorrect passcode"
339521msgstr "Sentímoslo, códigu de pasu incorreutu"
340522
@@ -429,51 +611,25 @@ msgstr "Devolver llamada"
429611msgid "Drag using 3 fingers any application from one window to the other"
430612msgstr "Abasnar cualquier aplicación d'una ventana a otra usando 3 deos"
431613
432−#: qml/Tutorial/TutorialBottom.qml:78
433−msgid "Swipe up to add a contact"
434−msgstr "Eslizar p'amestar un contactu"
435−
436−#: qml/Tutorial/TutorialBottom.qml:80
437−msgid "Swipe up for favorite calculations"
438−msgstr "Eslizar pa los cálculos favoritos"
439−
440−#: qml/Tutorial/TutorialBottom.qml:82
441−msgid "Swipe up for recent calls"
442−msgstr "Eslizar pa llamaes recién"
443−
444−#: qml/Tutorial/TutorialBottom.qml:84
445−msgid "Swipe up to create a message"
446−msgstr "Eslizar pa crear un mensaxe"
447−
448−#: qml/Tutorial/TutorialBottom.qml:85
449−msgid "Swipe up to manage the app"
450−msgstr "Eslizar p'alministrar la app"
451−
452−#: qml/Tutorial/TutorialLeftLong.qml:47
614+#: qml/Tutorial/TutorialLeftLong.qml:49
453615msgid "Long swipe from the left edge to open the Today scope"
454616msgstr "Eslizamientu llargu dende'l berbesu izquierdu pa ver el scope Güei"
455617
456618#: qml/Tutorial/TutorialLeft.qml:47
457−msgid "Swipe from the left edge to open the launcher"
458−msgstr "Eslizar dende'l berbesu izquierdu p'abrir el llanzador"
619+msgid "Short swipe from the left edge to open the launcher"
620+msgstr ""
459621
460622#: qml/Tutorial/TutorialRight.qml:55
461623msgid "Push your mouse against the right edge to view your open apps"
462624msgstr "Emburria'l mur escontra'l berbesu drechu pa ver les apps abiertes"
463625
464626#: qml/Tutorial/TutorialRight.qml:56
465−msgid "Short or long swipe from the right edge to view your open apps"
627+msgid "Swipe from the right edge to view your open apps"
466628msgstr ""
467−"Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
468629
469630#: qml/Tutorial/TutorialTop.qml:53
470−msgid "Swipe from the top right edge to open the notification bar"
631+msgid "Swipe from the top edge to access notifications and quick settings"
471632msgstr ""
472−"Esliza dende'l berbesu superior drechu p'abrir la barra de notificaciones"
473−
474−#: qml/Tutorial/TutorialTop.qml:54
475−msgid "Swipe from the top edge to open the notification bar"
476−msgstr "Esliza dende'l berbesu superior p'abrir la barra de notificaciones"
477633
478634#: qml/Wizard/Page.qml:54
479635msgctxt "Button: Go back one page in the Wizard"
@@ -484,15 +640,32 @@ msgstr "Atrás"
484640msgid "Language"
485641msgstr "Llingua"
486642
487−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
643+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
488644#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
489645#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
490646#: qml/Wizard/Pages/75-report-check.qml:84
491−#: qml/Wizard/Pages/passcode-desktop.qml:124
647+#: qml/Wizard/Pages/passcode-desktop.qml:141
492648#: qml/Wizard/Pages/password-set.qml:141
493649msgid "Next"
494650msgstr "Siguiente"
495651
652+#: qml/Wizard/Pages/20-keyboard.qml:30
653+msgid "Select Keyboard"
654+msgstr ""
655+
656+#: qml/Wizard/Pages/20-keyboard.qml:70
657+msgid "Keyboard language"
658+msgstr ""
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:92
661+msgid "Keyboard layout"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
665+#: qml/Wizard/Pages/sim.qml:101
666+msgid "Skip"
667+msgstr "Saltar"
668+
496669#: qml/Wizard/Pages/30-wifi.qml:29
497670msgid "Connect to Wi‑Fi"
498671msgstr "Coneutase al WiFi"
@@ -509,11 +682,6 @@ msgstr "Redes Wi-Fi disponibles"
509682msgid "No available Wi-Fi networks"
510683msgstr "Nun hai redes Wi-Fi disponibles"
511684
512−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
513−#: qml/Wizard/Pages/sim.qml:101
514−msgid "Skip"
515−msgstr "Saltar"
516−
517685#: qml/Wizard/Pages/40-location.qml:27
518686msgid "Location Services"
519687msgstr "Servicios d'allugamientu"
@@ -601,6 +769,35 @@ msgstr ""
601769msgid "Privacy policy"
602770msgstr "Política d'intimidá"
603771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr ""
800+
604801#: qml/Wizard/Pages/80-finished.qml:89
605802msgid "Welcome to Ubuntu"
606803msgstr "Bienveníu/a a Ubuntu"
@@ -644,7 +841,7 @@ msgid "Service Terms"
644841msgstr ""
645842
646843#: qml/Wizard/Pages/passcode-confirm.qml:43
647−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
648845msgid "Confirm passcode"
649846msgstr "Confirmar códigu de pasu"
650847
@@ -661,24 +858,24 @@ msgstr ""
661858msgid "Lock Screen Passcode"
662859msgstr ""
663860
664−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
665862msgid "Enter 4 numbers to setup your passcode"
666863msgstr ""
667864
668−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
669866#: qml/Wizard/Pages/passcode-set.qml:54
670867msgid "Choose passcode"
671868msgstr ""
672869
673−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
674871msgid "Passcode too short"
675872msgstr ""
676873
677−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
678875msgid "Passcodes match"
679876msgstr ""
680877
681−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
682879msgid "Passcodes do not match"
683880msgstr ""
684881
@@ -727,26 +924,30 @@ msgid "To proceed with no SIM tap Skip."
727924msgstr ""
728925
729926#: qml/Wizard/PasswordMeter.qml:87
730−msgid "Passwords match"
927+msgid "Password too short"
731928msgstr ""
732929
733930#: qml/Wizard/PasswordMeter.qml:89
931+msgid "Passwords match"
932+msgstr ""
933+
934+#: qml/Wizard/PasswordMeter.qml:91
734935msgid "Passwords do not match"
735936msgstr ""
736937
737−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
738939msgid "Strong password"
739940msgstr "Contraseña fuerte"
740941
741−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
742943msgid "Fair password"
743944msgstr "Contraseña aceutable"
744945
745−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
746947msgid "Weak password"
747948msgstr "Contraseña feble"
748949
749−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
750951msgid "Very weak password"
751952msgstr "Contraseña feble enforma"
752953
@@ -914,6 +1115,9 @@ msgstr "Contraseña feble enforma"
9141115#~ msgid "Reboot"
9151116#~ msgstr "Reaniciar"
9161117
1118+#~ msgid "Tap to unlock"
1119+#~ msgstr "Calca pa desbloquiar"
1120+
9171121#~ msgid "These are the shortcuts to favorite apps"
9181122#~ msgstr "Estos son los atayos a les aplicaciones favorites"
9191123
@@ -1070,3 +1274,32 @@ msgstr "Contraseña feble enforma"
10701274
10711275#~ msgid "Call back"
10721276#~ msgstr "Devolver llamada"
1277+
1278+#~ msgid "Swipe up for recent calls"
1279+#~ msgstr "Eslizar pa llamaes recién"
1280+
1281+#~ msgid "Swipe up for favorite calculations"
1282+#~ msgstr "Eslizar pa los cálculos favoritos"
1283+
1284+#~ msgid "Swipe up to add a contact"
1285+#~ msgstr "Eslizar p'amestar un contactu"
1286+
1287+#~ msgid "Swipe from the left edge to open the launcher"
1288+#~ msgstr "Eslizar dende'l berbesu izquierdu p'abrir el llanzador"
1289+
1290+#~ msgid "Swipe from the top right edge to open the notification bar"
1291+#~ msgstr ""
1292+#~ "Esliza dende'l berbesu superior drechu p'abrir la barra de notificaciones"
1293+
1294+#~ msgid "Swipe from the top edge to open the notification bar"
1295+#~ msgstr "Esliza dende'l berbesu superior p'abrir la barra de notificaciones"
1296+
1297+#~ msgid "Short or long swipe from the right edge to view your open apps"
1298+#~ msgstr ""
1299+#~ "Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
1300+
1301+#~ msgid "Swipe up to manage the app"
1302+#~ msgstr "Eslizar p'alministrar la app"
1303+
1304+#~ msgid "Swipe up to create a message"
1305+#~ msgstr "Eslizar pa crear un mensaxe"
po/az.po+296−93
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2014-09-03 16:39+0000\n"
1212"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Şifrә: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Pin qısayolu"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Açma qısayolu"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr ""
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr ""
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] ""
5555msgstr[1] ""
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr ""
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "İmtina"
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr ""
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr "Yox"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "Hə"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr ""
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
108108msgstr ""
109109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111111msgctxt "Button: Power off the system"
112112msgid "Power off"
113113msgstr ""
114114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116116msgctxt "Button: Restart the system"
117117msgid "Restart"
118118msgstr ""
119119
120−#: qml/Components/Lockscreen.qml:231
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
280+#: qml/Components/Lockscreen.qml:239
121281msgid "Return to Call"
122282msgstr ""
123283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125285msgid "Emergency Call"
126286msgstr "Zərurət zəngi"
127287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129289msgid "OK"
130290msgstr "Oldu"
131291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132302#: qml/Components/ModeSwitchWarningDialog.qml:32
133303msgid "Apps may have unsaved data:"
134304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155325msgid "Close all"
156326msgstr ""
157327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158332#: qml/Dash/DashPageHeader.qml:333
159333msgctxt "Button: Open the Ubuntu Store"
160334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186360msgid "Reset"
187361msgstr ""
188362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190364msgid "Show less"
191365msgstr ""
192366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194368msgid "Show all"
195369msgstr ""
196370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198372msgctxt "Label: Hint for dash search line edit"
199373msgid "Search"
200374msgstr ""
@@ -228,10 +402,6 @@ msgstr "Qiymәtlәndir"
228402msgid "Add a review"
229403msgstr "Rəy yaz"
230404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236406msgid "Pull to refresh…"
237407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248418msgid "Manage"
249419msgstr ""
250420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252422msgid "Home"
253423msgstr ""
254424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256426msgid "Also installed"
257427msgstr ""
258428
@@ -262,16 +432,28 @@ msgid ""
262432"touch pad to interact with the pointer."
263433msgstr ""
264434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266436msgid "Unlock"
267437msgstr ""
268438
269−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270452msgid "Retry"
271453msgstr ""
272454
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
455+#: qml/Greeter/LoginList.qml:260
456+msgid "Log In"
275457msgstr ""
276458
277459#: qml/Greeter/NarrowView.qml:54
@@ -302,34 +484,34 @@ msgstr ""
302484"Əgər açar kod yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
303485"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
304486
305−#: qml/Greeter/NarrowView.qml:116
487+#: qml/Greeter/NarrowView.qml:129
306488#, qt-format
307489msgid "Enter %1"
308490msgstr ""
309491
310−#: qml/Greeter/NarrowView.qml:117
492+#: qml/Greeter/NarrowView.qml:130
311493msgid "Enter passphrase"
312494msgstr ""
313495
314−#: qml/Greeter/NarrowView.qml:118
496+#: qml/Greeter/NarrowView.qml:131
315497msgid "Enter passcode"
316498msgstr ""
317499
318−#: qml/Greeter/NarrowView.qml:119
500+#: qml/Greeter/NarrowView.qml:135
319501#, qt-format
320502msgid "Sorry, incorrect %1"
321503msgstr "Bağışlayın, %1 yanlışdır"
322504
323−#: qml/Greeter/NarrowView.qml:120
505+#: qml/Greeter/NarrowView.qml:136
324506msgid "Sorry, incorrect passphrase"
325507msgstr "Bağışlayın, açar söz yanlışdır"
326508
327−#: qml/Greeter/NarrowView.qml:121
509+#: qml/Greeter/NarrowView.qml:137
328510msgctxt "passphrase"
329511msgid "Please re-enter"
330512msgstr ""
331513
332−#: qml/Greeter/NarrowView.qml:122
514+#: qml/Greeter/NarrowView.qml:138
333515msgid "Sorry, incorrect passcode"
334516msgstr ""
335517
@@ -424,32 +606,12 @@ msgstr ""
424606msgid "Drag using 3 fingers any application from one window to the other"
425607msgstr ""
426608
427−#: qml/Tutorial/TutorialBottom.qml:78
428−msgid "Swipe up to add a contact"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:80
432−msgid "Swipe up for favorite calculations"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:82
436−msgid "Swipe up for recent calls"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:84
440−msgid "Swipe up to create a message"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:85
444−msgid "Swipe up to manage the app"
445−msgstr ""
446−
447−#: qml/Tutorial/TutorialLeftLong.qml:47
609+#: qml/Tutorial/TutorialLeftLong.qml:49
448610msgid "Long swipe from the left edge to open the Today scope"
449611msgstr ""
450612
451613#: qml/Tutorial/TutorialLeft.qml:47
452−msgid "Swipe from the left edge to open the launcher"
614+msgid "Short swipe from the left edge to open the launcher"
453615msgstr ""
454616
455617#: qml/Tutorial/TutorialRight.qml:55
@@ -457,15 +619,11 @@ msgid "Push your mouse against the right edge to view your open apps"
457619msgstr ""
458620
459621#: qml/Tutorial/TutorialRight.qml:56
460−msgid "Short or long swipe from the right edge to view your open apps"
622+msgid "Swipe from the right edge to view your open apps"
461623msgstr ""
462624
463625#: qml/Tutorial/TutorialTop.qml:53
464−msgid "Swipe from the top right edge to open the notification bar"
465−msgstr ""
466−
467−#: qml/Tutorial/TutorialTop.qml:54
468−msgid "Swipe from the top edge to open the notification bar"
626+msgid "Swipe from the top edge to access notifications and quick settings"
469627msgstr ""
470628
471629#: qml/Wizard/Page.qml:54
@@ -477,15 +635,32 @@ msgstr ""
477635msgid "Language"
478636msgstr ""
479637
480−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
638+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
481639#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
482640#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
483641#: qml/Wizard/Pages/75-report-check.qml:84
484−#: qml/Wizard/Pages/passcode-desktop.qml:124
642+#: qml/Wizard/Pages/passcode-desktop.qml:141
485643#: qml/Wizard/Pages/password-set.qml:141
486644msgid "Next"
487645msgstr ""
488646
647+#: qml/Wizard/Pages/20-keyboard.qml:30
648+msgid "Select Keyboard"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:70
652+msgid "Keyboard language"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/20-keyboard.qml:92
656+msgid "Keyboard layout"
657+msgstr ""
658+
659+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
660+#: qml/Wizard/Pages/sim.qml:101
661+msgid "Skip"
662+msgstr ""
663+
489664#: qml/Wizard/Pages/30-wifi.qml:29
490665msgid "Connect to Wi‑Fi"
491666msgstr ""
@@ -502,11 +677,6 @@ msgstr ""
502677msgid "No available Wi-Fi networks"
503678msgstr ""
504679
505−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
506−#: qml/Wizard/Pages/sim.qml:101
507−msgid "Skip"
508−msgstr ""
509−
510680#: qml/Wizard/Pages/40-location.qml:27
511681msgid "Location Services"
512682msgstr ""
@@ -590,6 +760,35 @@ msgstr ""
590760msgid "Privacy policy"
591761msgstr ""
592762
763+#: qml/Wizard/Pages/77-system-update.qml:28
764+msgid "Update Device"
765+msgstr ""
766+
767+#: qml/Wizard/Pages/77-system-update.qml:55
768+msgid ""
769+"There is a system update available and ready to install. Afterwards, the "
770+"device will automatically restart."
771+msgstr ""
772+
773+#: qml/Wizard/Pages/77-system-update.qml:76
774+msgctxt "string identifying name of the update"
775+msgid "Ubuntu system"
776+msgstr ""
777+
778+#: qml/Wizard/Pages/77-system-update.qml:83
779+#, qt-format
780+msgctxt "version of the system update"
781+msgid "Version %1"
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:102
785+msgid "This could take a few minutes..."
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:116
789+msgid "Install and restart now"
790+msgstr ""
791+
593792#: qml/Wizard/Pages/80-finished.qml:89
594793msgid "Welcome to Ubuntu"
595794msgstr ""
@@ -633,7 +832,7 @@ msgid "Service Terms"
633832msgstr ""
634833
635834#: qml/Wizard/Pages/passcode-confirm.qml:43
636−#: qml/Wizard/Pages/passcode-desktop.qml:80
835+#: qml/Wizard/Pages/passcode-desktop.qml:96
637836msgid "Confirm passcode"
638837msgstr ""
639838
@@ -650,24 +849,24 @@ msgstr ""
650849msgid "Lock Screen Passcode"
651850msgstr ""
652851
653−#: qml/Wizard/Pages/passcode-desktop.qml:56
852+#: qml/Wizard/Pages/passcode-desktop.qml:60
654853msgid "Enter 4 numbers to setup your passcode"
655854msgstr ""
656855
657−#: qml/Wizard/Pages/passcode-desktop.qml:65
856+#: qml/Wizard/Pages/passcode-desktop.qml:76
658857#: qml/Wizard/Pages/passcode-set.qml:54
659858msgid "Choose passcode"
660859msgstr ""
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:105
861+#: qml/Wizard/Pages/passcode-desktop.qml:126
663862msgid "Passcode too short"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:107
865+#: qml/Wizard/Pages/passcode-desktop.qml:128
667866msgid "Passcodes match"
668867msgstr ""
669868
670−#: qml/Wizard/Pages/passcode-desktop.qml:109
869+#: qml/Wizard/Pages/passcode-desktop.qml:130
671870msgid "Passcodes do not match"
672871msgstr ""
673872
@@ -716,26 +915,30 @@ msgid "To proceed with no SIM tap Skip."
716915msgstr ""
717916
718917#: qml/Wizard/PasswordMeter.qml:87
719−msgid "Passwords match"
918+msgid "Password too short"
720919msgstr ""
721920
722921#: qml/Wizard/PasswordMeter.qml:89
922+msgid "Passwords match"
923+msgstr ""
924+
925+#: qml/Wizard/PasswordMeter.qml:91
723926msgid "Passwords do not match"
724927msgstr ""
725928
726−#: qml/Wizard/PasswordMeter.qml:93
929+#: qml/Wizard/PasswordMeter.qml:95
727930msgid "Strong password"
728931msgstr ""
729932
730−#: qml/Wizard/PasswordMeter.qml:95
933+#: qml/Wizard/PasswordMeter.qml:97
731934msgid "Fair password"
732935msgstr ""
733936
734−#: qml/Wizard/PasswordMeter.qml:97
937+#: qml/Wizard/PasswordMeter.qml:99
735938msgid "Weak password"
736939msgstr ""
737940
738−#: qml/Wizard/PasswordMeter.qml:99
941+#: qml/Wizard/PasswordMeter.qml:101
739942msgid "Very weak password"
740943msgstr ""
741944
po/be.po+300−94
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-12-13 13:12+0000\n"
1212"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
1313"Language-Team: Belarusian <be@li.org>\n"
@@ -16,42 +16,42 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
20+"X-Generator: Launchpad (build 18179)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Пароль: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
2828msgid "Pin shortcut"
2929msgstr "Замацаваць кнопку"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
3232msgid "Quit"
3333msgstr "Выйсці"
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
3636msgid "Unpin shortcut"
3737msgstr "Адмацаваць кнопку"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
4040msgid "Device Locked"
4141msgstr "Прылада заблакаваная"
4242
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
4444msgid "You have been locked out due to too many failed passphrase attempts."
4545msgstr ""
4646"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў уводу "
5252"кода доступу."
5353
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
5555#, qt-format
5656msgid "Please wait %1 minute and then try again…"
5757msgid_plural "Please wait %1 minutes and then try again…"
@@ -59,54 +59,54 @@ msgstr[0] "Пачакайце %1 хвіліну і паўтарыце спроб
5959msgstr[1] "Пачакайце %1 хвіліны і паўтарыце спробу…"
6060msgstr[2] "Пачакайце %1 хвілін і паўтарыце спробу…"
6161
62−#: qml/Components/Dialogs.qml:144
62+#: qml/Components/Dialogs.qml:146
6363msgctxt "Title: Lock/Log out dialog"
6464msgid "Log out"
6565msgstr "Выйсці"
6666
67−#: qml/Components/Dialogs.qml:145
67+#: qml/Components/Dialogs.qml:147
6868msgid "Are you sure you want to log out?"
6969msgstr "Вы ўпэўненыя, што хочаце выйсці?"
7070
71−#: qml/Components/Dialogs.qml:147
71+#: qml/Components/Dialogs.qml:149
7272msgctxt "Button: Lock the system"
7373msgid "Lock"
7474msgstr "Заблакаваць"
7575
76−#: qml/Components/Dialogs.qml:154
76+#: qml/Components/Dialogs.qml:156
7777msgctxt "Button: Log out from the system"
7878msgid "Log Out"
7979msgstr "Выйсці"
8080
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8282#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8383#: qml/Wizard/Pages/passcode-set.qml:32
8484msgid "Cancel"
8585msgstr "Скасаваць"
8686
87−#: qml/Components/Dialogs.qml:173
87+#: qml/Components/Dialogs.qml:175
8888msgctxt "Title: Reboot dialog"
8989msgid "Reboot"
9090msgstr "Перазагрузіць"
9191
92−#: qml/Components/Dialogs.qml:174
92+#: qml/Components/Dialogs.qml:176
9393msgid "Are you sure you want to reboot?"
9494msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
9595
96−#: qml/Components/Dialogs.qml:176
96+#: qml/Components/Dialogs.qml:178
9797msgid "No"
9898msgstr "Не"
9999
100−#: qml/Components/Dialogs.qml:182
100+#: qml/Components/Dialogs.qml:184
101101msgid "Yes"
102102msgstr "Так"
103103
104−#: qml/Components/Dialogs.qml:197
104+#: qml/Components/Dialogs.qml:199
105105msgctxt "Title: Power off/Restart dialog"
106106msgid "Power"
107107msgstr "Сілкаванне"
108108
109−#: qml/Components/Dialogs.qml:198
109+#: qml/Components/Dialogs.qml:200
110110msgid ""
111111"Are you sure you would like\n"
112112"to power off?"
@@ -114,28 +114,198 @@ msgstr ""
114114"Вы ўпэўнены, што хочаце\n"
115115"выключыць камп'ютэр?"
116116
117−#: qml/Components/Dialogs.qml:200
117+#: qml/Components/Dialogs.qml:202
118118msgctxt "Button: Power off the system"
119119msgid "Power off"
120120msgstr "Выключыць"
121121
122−#: qml/Components/Dialogs.qml:209
122+#: qml/Components/Dialogs.qml:211
123123msgctxt "Button: Restart the system"
124124msgid "Restart"
125125msgstr "Перазапуск"
126126
127−#: qml/Components/Lockscreen.qml:231
127+#: qml/Components/KeyboardShortcutsOverlay.qml:41
128+msgid "Keyboard Shortcuts"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:55
132+msgid "Unity 8"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:62
136+msgid "PrtScr"
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:67
140+msgid "Takes a screenshot."
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:75
144+msgid "Alt + PrtScr"
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:80
148+msgid "Takes a screenshot of a window."
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:88
152+msgid "Super + Space"
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:93
156+msgid "Switches to next keyboard layout."
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:101
160+msgid "Super + Shift + Space"
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:106
164+msgid "Switches to previous keyboard layout."
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:118
168+msgid "Launcher"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:125
172+msgid "Super (Hold)"
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:130
176+msgid "Opens the launcher, displays shortcuts."
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:138
180+msgid "Alt + F1"
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:143
184+msgid "Opens launcher keyboard navigation mode."
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:151
188+msgid "Super + Tab"
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:156
192+msgid "Switches applications via the launcher."
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:164
196+msgid "Super + 0 to 9"
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:169
200+msgid "Same as clicking on a launcher icon."
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:181
204+msgid "Scopes"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:188
208+msgid "Super (Tap)"
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:193
212+msgid "Opens the Scopes home."
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:209
216+msgid "Switching"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:216
220+msgid "Alt + Tab"
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:221
224+msgid "Switches between applications."
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:229
228+msgid "Super + W"
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:234
232+msgid "Opens the desktop spread."
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:242
236+msgid "Cursor Left or Right"
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:247
240+msgid "Moves the focus."
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:259
244+msgid "Windows"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:266
248+msgid "Ctrl + Super + D"
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:271
252+msgid "Minimizes all windows."
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:279
256+msgid "Ctrl + Super + Up"
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:284
260+msgid "Maximizes the current window."
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:292
264+msgid "Ctrl + Super + Down"
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:297
268+msgid "Minimizes or restores the current window."
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:305
272+msgid "Ctrl + Super + Left or Right"
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:310
276+msgid "Semi-maximizes the current window."
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:318
280+msgid "Alt + F4"
281+msgstr ""
282+
283+#: qml/Components/KeyboardShortcutsOverlay.qml:323
284+msgid "Closes the current window."
285+msgstr ""
286+
287+#: qml/Components/Lockscreen.qml:239
128288msgid "Return to Call"
129289msgstr "Вярнуцца да выкліку"
130290
131−#: qml/Components/Lockscreen.qml:231
291+#: qml/Components/Lockscreen.qml:239
132292msgid "Emergency Call"
133293msgstr "Терміновы выклік"
134294
135−#: qml/Components/Lockscreen.qml:263
295+#: qml/Components/Lockscreen.qml:271
136296msgid "OK"
137297msgstr "Добра"
138298
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
300+#, qt-format
301+msgid "%1:%2:%3"
302+msgstr ""
303+
304+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
305+#, qt-format
306+msgid "%1:%2"
307+msgstr ""
308+
139309#: qml/Components/ModeSwitchWarningDialog.qml:32
140310msgid "Apps may have unsaved data:"
141311msgstr "Прылады могуць мець незахованыя дадзеныя:"
@@ -162,6 +332,10 @@ msgstr "Перападлучыцца зараз!"
162332msgid "Close all"
163333msgstr "Зачыніць усё"
164334
335+#: qml/Components/SharingPicker.qml:54
336+msgid "Preview Share Item"
337+msgstr "Праглядзець элемент"
338+
165339#: qml/Dash/DashPageHeader.qml:333
166340msgctxt "Button: Open the Ubuntu Store"
167341msgid "Store"
@@ -193,15 +367,15 @@ msgstr ""
193367msgid "Reset"
194368msgstr ""
195369
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
370+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197371msgid "Show less"
198372msgstr ""
199373
200−#: qml/Dash/GenericScopeView.qml:579
374+#: qml/Dash/GenericScopeView.qml:580
201375msgid "Show all"
202376msgstr ""
203377
204−#: qml/Dash/GenericScopeView.qml:636
378+#: qml/Dash/GenericScopeView.qml:637
205379msgctxt "Label: Hint for dash search line edit"
206380msgid "Search"
207381msgstr "Пошук"
@@ -235,10 +409,6 @@ msgstr "Ацаніць"
235409msgid "Add a review"
236410msgstr "Дадаць рэцэнзію"
237411
238−#: qml/Dash/Previews/PreviewSharing.qml:66
239−msgid "Preview Share Item"
240−msgstr "Праглядзець элемент"
241−
242412#: qml/Dash/PullToRefreshScopeStyle.qml:55
243413msgid "Pull to refresh…"
244414msgstr "Пацягніце для абнаўлення..."
@@ -255,11 +425,11 @@ msgstr "Уключыць дадзеныя аб месцазнаходжанні"
255425msgid "Manage"
256426msgstr "Кіраванне"
257427
258−#: qml/Dash/ScopesList.qml:101
428+#: qml/Dash/ScopesList.qml:102
259429msgid "Home"
260430msgstr "Хатняя папка"
261431
262−#: qml/Dash/ScopesList.qml:102
432+#: qml/Dash/ScopesList.qml:103
263433msgid "Also installed"
264434msgstr "Таксама ўсталявана"
265435
@@ -269,17 +439,29 @@ msgid ""
269439"touch pad to interact with the pointer."
270440msgstr ""
271441
272−#: qml/Greeter/CoverPage.qml:118
442+#: qml/Greeter/CoverPage.qml:127
273443msgid "Unlock"
274444msgstr "Разблакаваць"
275445
276−#: qml/Greeter/LoginList.qml:239
446+#: qml/Greeter/Greeter.qml:539
447+msgid "Try again"
448+msgstr ""
449+
450+#: qml/Greeter/LoginList.qml:63
451+msgid "Passphrase"
452+msgstr ""
453+
454+#: qml/Greeter/LoginList.qml:64
455+msgid "Passcode"
456+msgstr ""
457+
458+#: qml/Greeter/LoginList.qml:259
277459msgid "Retry"
278460msgstr "Паспрабаваць зноў"
279461
280−#: qml/Greeter/LoginList.qml:240
281−msgid "Tap to unlock"
282−msgstr "Націсніце, каб разблакаваць"
462+#: qml/Greeter/LoginList.qml:260
463+msgid "Log In"
464+msgstr ""
283465
284466#: qml/Greeter/NarrowView.qml:54
285467msgid "Sorry, incorrect passphrase."
@@ -309,34 +491,34 @@ msgstr ""
309491"Калі ўведзены код неправільны, Ваш тэлефон зробіць агульны скід налад і ўсе "
310492"асабістыя дадзеныя будуць выдалены."
311493
312−#: qml/Greeter/NarrowView.qml:116
494+#: qml/Greeter/NarrowView.qml:129
313495#, qt-format
314496msgid "Enter %1"
315497msgstr "Увядзіце %1"
316498
317−#: qml/Greeter/NarrowView.qml:117
499+#: qml/Greeter/NarrowView.qml:130
318500msgid "Enter passphrase"
319501msgstr "Увядзіце пароль"
320502
321−#: qml/Greeter/NarrowView.qml:118
503+#: qml/Greeter/NarrowView.qml:131
322504msgid "Enter passcode"
323505msgstr "Увядзіце код"
324506
325−#: qml/Greeter/NarrowView.qml:119
507+#: qml/Greeter/NarrowView.qml:135
326508#, qt-format
327509msgid "Sorry, incorrect %1"
328510msgstr "Даруйце, некарэктны %1"
329511
330−#: qml/Greeter/NarrowView.qml:120
512+#: qml/Greeter/NarrowView.qml:136
331513msgid "Sorry, incorrect passphrase"
332514msgstr "Даруйце, някарэктны пароль"
333515
334−#: qml/Greeter/NarrowView.qml:121
516+#: qml/Greeter/NarrowView.qml:137
335517msgctxt "passphrase"
336518msgid "Please re-enter"
337519msgstr "Калі ласка, паўтарыце ўвод"
338520
339−#: qml/Greeter/NarrowView.qml:122
521+#: qml/Greeter/NarrowView.qml:138
340522msgid "Sorry, incorrect passcode"
341523msgstr "Даруйце, некарэктны код"
342524
@@ -434,32 +616,12 @@ msgstr "Патэлефанаваць"
434616msgid "Drag using 3 fingers any application from one window to the other"
435617msgstr ""
436618
437−#: qml/Tutorial/TutorialBottom.qml:78
438−msgid "Swipe up to add a contact"
439−msgstr ""
440−
441−#: qml/Tutorial/TutorialBottom.qml:80
442−msgid "Swipe up for favorite calculations"
443−msgstr ""
444−
445−#: qml/Tutorial/TutorialBottom.qml:82
446−msgid "Swipe up for recent calls"
447−msgstr ""
448−
449−#: qml/Tutorial/TutorialBottom.qml:84
450−msgid "Swipe up to create a message"
451−msgstr ""
452−
453−#: qml/Tutorial/TutorialBottom.qml:85
454−msgid "Swipe up to manage the app"
455−msgstr ""
456−
457−#: qml/Tutorial/TutorialLeftLong.qml:47
619+#: qml/Tutorial/TutorialLeftLong.qml:49
458620msgid "Long swipe from the left edge to open the Today scope"
459621msgstr ""
460622
461623#: qml/Tutorial/TutorialLeft.qml:47
462−msgid "Swipe from the left edge to open the launcher"
624+msgid "Short swipe from the left edge to open the launcher"
463625msgstr ""
464626
465627#: qml/Tutorial/TutorialRight.qml:55
@@ -467,15 +629,11 @@ msgid "Push your mouse against the right edge to view your open apps"
467629msgstr ""
468630
469631#: qml/Tutorial/TutorialRight.qml:56
470−msgid "Short or long swipe from the right edge to view your open apps"
632+msgid "Swipe from the right edge to view your open apps"
471633msgstr ""
472634
473635#: qml/Tutorial/TutorialTop.qml:53
474−msgid "Swipe from the top right edge to open the notification bar"
475−msgstr ""
476−
477−#: qml/Tutorial/TutorialTop.qml:54
478−msgid "Swipe from the top edge to open the notification bar"
636+msgid "Swipe from the top edge to access notifications and quick settings"
479637msgstr ""
480638
481639#: qml/Wizard/Page.qml:54
@@ -487,15 +645,32 @@ msgstr "Вярнуцца"
487645msgid "Language"
488646msgstr ""
489647
490−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
648+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
491649#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
492650#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
493651#: qml/Wizard/Pages/75-report-check.qml:84
494−#: qml/Wizard/Pages/passcode-desktop.qml:124
652+#: qml/Wizard/Pages/passcode-desktop.qml:141
495653#: qml/Wizard/Pages/password-set.qml:141
496654msgid "Next"
497655msgstr ""
498656
657+#: qml/Wizard/Pages/20-keyboard.qml:30
658+msgid "Select Keyboard"
659+msgstr ""
660+
661+#: qml/Wizard/Pages/20-keyboard.qml:70
662+msgid "Keyboard language"
663+msgstr ""
664+
665+#: qml/Wizard/Pages/20-keyboard.qml:92
666+msgid "Keyboard layout"
667+msgstr ""
668+
669+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
670+#: qml/Wizard/Pages/sim.qml:101
671+msgid "Skip"
672+msgstr "Прапусціць"
673+
499674#: qml/Wizard/Pages/30-wifi.qml:29
500675msgid "Connect to Wi‑Fi"
501676msgstr "Злучыцца з Wi-Fi"
@@ -512,11 +687,6 @@ msgstr ""
512687msgid "No available Wi-Fi networks"
513688msgstr ""
514689
515−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
516−#: qml/Wizard/Pages/sim.qml:101
517−msgid "Skip"
518−msgstr "Прапусціць"
519−
520690#: qml/Wizard/Pages/40-location.qml:27
521691msgid "Location Services"
522692msgstr ""
@@ -600,6 +770,35 @@ msgstr ""
600770msgid "Privacy policy"
601771msgstr ""
602772
773+#: qml/Wizard/Pages/77-system-update.qml:28
774+msgid "Update Device"
775+msgstr ""
776+
777+#: qml/Wizard/Pages/77-system-update.qml:55
778+msgid ""
779+"There is a system update available and ready to install. Afterwards, the "
780+"device will automatically restart."
781+msgstr ""
782+
783+#: qml/Wizard/Pages/77-system-update.qml:76
784+msgctxt "string identifying name of the update"
785+msgid "Ubuntu system"
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:83
789+#, qt-format
790+msgctxt "version of the system update"
791+msgid "Version %1"
792+msgstr ""
793+
794+#: qml/Wizard/Pages/77-system-update.qml:102
795+msgid "This could take a few minutes..."
796+msgstr ""
797+
798+#: qml/Wizard/Pages/77-system-update.qml:116
799+msgid "Install and restart now"
800+msgstr ""
801+
603802#: qml/Wizard/Pages/80-finished.qml:89
604803msgid "Welcome to Ubuntu"
605804msgstr ""
@@ -643,7 +842,7 @@ msgid "Service Terms"
643842msgstr ""
644843
645844#: qml/Wizard/Pages/passcode-confirm.qml:43
646−#: qml/Wizard/Pages/passcode-desktop.qml:80
845+#: qml/Wizard/Pages/passcode-desktop.qml:96
647846msgid "Confirm passcode"
648847msgstr "Пацвердзіце код-пароль"
649848
@@ -660,24 +859,24 @@ msgstr ""
660859msgid "Lock Screen Passcode"
661860msgstr ""
662861
663−#: qml/Wizard/Pages/passcode-desktop.qml:56
862+#: qml/Wizard/Pages/passcode-desktop.qml:60
664863msgid "Enter 4 numbers to setup your passcode"
665864msgstr ""
666865
667−#: qml/Wizard/Pages/passcode-desktop.qml:65
866+#: qml/Wizard/Pages/passcode-desktop.qml:76
668867#: qml/Wizard/Pages/passcode-set.qml:54
669868msgid "Choose passcode"
670869msgstr ""
671870
672−#: qml/Wizard/Pages/passcode-desktop.qml:105
871+#: qml/Wizard/Pages/passcode-desktop.qml:126
673872msgid "Passcode too short"
674873msgstr ""
675874
676−#: qml/Wizard/Pages/passcode-desktop.qml:107
875+#: qml/Wizard/Pages/passcode-desktop.qml:128
677876msgid "Passcodes match"
678877msgstr ""
679878
680−#: qml/Wizard/Pages/passcode-desktop.qml:109
879+#: qml/Wizard/Pages/passcode-desktop.qml:130
681880msgid "Passcodes do not match"
682881msgstr ""
683882
@@ -726,26 +925,30 @@ msgid "To proceed with no SIM tap Skip."
726925msgstr ""
727926
728927#: qml/Wizard/PasswordMeter.qml:87
729−msgid "Passwords match"
928+msgid "Password too short"
730929msgstr ""
731930
732931#: qml/Wizard/PasswordMeter.qml:89
932+msgid "Passwords match"
933+msgstr ""
934+
935+#: qml/Wizard/PasswordMeter.qml:91
733936msgid "Passwords do not match"
734937msgstr ""
735938
736−#: qml/Wizard/PasswordMeter.qml:93
939+#: qml/Wizard/PasswordMeter.qml:95
737940msgid "Strong password"
738941msgstr ""
739942
740−#: qml/Wizard/PasswordMeter.qml:95
943+#: qml/Wizard/PasswordMeter.qml:97
741944msgid "Fair password"
742945msgstr ""
743946
744−#: qml/Wizard/PasswordMeter.qml:97
947+#: qml/Wizard/PasswordMeter.qml:99
745948msgid "Weak password"
746949msgstr ""
747950
748−#: qml/Wizard/PasswordMeter.qml:99
951+#: qml/Wizard/PasswordMeter.qml:101
749952msgid "Very weak password"
750953msgstr ""
751954
@@ -957,6 +1160,9 @@ msgstr ""
9571160#~ msgid "Reboot"
9581161#~ msgstr "Перазагрузіць"
9591162
1163+#~ msgid "Tap to unlock"
1164+#~ msgstr "Націсніце, каб разблакаваць"
1165+
9601166#~ msgid "Swipe up from the bottom edge."
9611167#~ msgstr "Правесці уверх ад ніжняга краю."
9621168
po/bg.po+296−93
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-04-12 14:43+0000\n"
1212"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,93 +15,93 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr ""
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr ""
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr ""
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] ""
5555msgstr[1] ""
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr ""
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr ""
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr ""
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr ""
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr ""
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr ""
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr ""
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
@@ -109,28 +109,198 @@ msgstr ""
109109"Искате ли да \n"
110110"изключите захранването на устройството?"
111111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113113msgctxt "Button: Power off the system"
114114msgid "Power off"
115115msgstr ""
116116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118118msgctxt "Button: Restart the system"
119119msgid "Restart"
120120msgstr ""
121121
122−#: qml/Components/Lockscreen.qml:231
122+#: qml/Components/KeyboardShortcutsOverlay.qml:41
123+msgid "Keyboard Shortcuts"
124+msgstr ""
125+
126+#: qml/Components/KeyboardShortcutsOverlay.qml:55
127+msgid "Unity 8"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:62
131+msgid "PrtScr"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:67
135+msgid "Takes a screenshot."
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:75
139+msgid "Alt + PrtScr"
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:80
143+msgid "Takes a screenshot of a window."
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:88
147+msgid "Super + Space"
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:93
151+msgid "Switches to next keyboard layout."
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:101
155+msgid "Super + Shift + Space"
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:106
159+msgid "Switches to previous keyboard layout."
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:118
163+msgid "Launcher"
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:125
167+msgid "Super (Hold)"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:130
171+msgid "Opens the launcher, displays shortcuts."
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:138
175+msgid "Alt + F1"
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:143
179+msgid "Opens launcher keyboard navigation mode."
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:151
183+msgid "Super + Tab"
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:156
187+msgid "Switches applications via the launcher."
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:164
191+msgid "Super + 0 to 9"
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:169
195+msgid "Same as clicking on a launcher icon."
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:181
199+msgid "Scopes"
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:188
203+msgid "Super (Tap)"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:193
207+msgid "Opens the Scopes home."
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:209
211+msgid "Switching"
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:216
215+msgid "Alt + Tab"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:221
219+msgid "Switches between applications."
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:229
223+msgid "Super + W"
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:234
227+msgid "Opens the desktop spread."
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:242
231+msgid "Cursor Left or Right"
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:247
235+msgid "Moves the focus."
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:259
239+msgid "Windows"
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:266
243+msgid "Ctrl + Super + D"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:271
247+msgid "Minimizes all windows."
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:279
251+msgid "Ctrl + Super + Up"
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:284
255+msgid "Maximizes the current window."
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:292
259+msgid "Ctrl + Super + Down"
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:297
263+msgid "Minimizes or restores the current window."
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:305
267+msgid "Ctrl + Super + Left or Right"
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:310
271+msgid "Semi-maximizes the current window."
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:318
275+msgid "Alt + F4"
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:323
279+msgid "Closes the current window."
280+msgstr ""
281+
282+#: qml/Components/Lockscreen.qml:239
123283msgid "Return to Call"
124284msgstr ""
125285
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Emergency Call"
128288msgstr "Спешно повикване"
129289
130−#: qml/Components/Lockscreen.qml:263
290+#: qml/Components/Lockscreen.qml:271
131291msgid "OK"
132292msgstr ""
133293
294+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
295+#, qt-format
296+msgid "%1:%2:%3"
297+msgstr ""
298+
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
300+#, qt-format
301+msgid "%1:%2"
302+msgstr ""
303+
134304#: qml/Components/ModeSwitchWarningDialog.qml:32
135305msgid "Apps may have unsaved data:"
136306msgstr ""
@@ -157,6 +327,10 @@ msgstr ""
157327msgid "Close all"
158328msgstr ""
159329
330+#: qml/Components/SharingPicker.qml:54
331+msgid "Preview Share Item"
332+msgstr ""
333+
160334#: qml/Dash/DashPageHeader.qml:333
161335msgctxt "Button: Open the Ubuntu Store"
162336msgid "Store"
@@ -188,15 +362,15 @@ msgstr ""
188362msgid "Reset"
189363msgstr ""
190364
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
365+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192366msgid "Show less"
193367msgstr ""
194368
195−#: qml/Dash/GenericScopeView.qml:579
369+#: qml/Dash/GenericScopeView.qml:580
196370msgid "Show all"
197371msgstr ""
198372
199−#: qml/Dash/GenericScopeView.qml:636
373+#: qml/Dash/GenericScopeView.qml:637
200374msgctxt "Label: Hint for dash search line edit"
201375msgid "Search"
202376msgstr ""
@@ -230,10 +404,6 @@ msgstr "Оценете това"
230404msgid "Add a review"
231405msgstr "Добави отзив"
232406
233−#: qml/Dash/Previews/PreviewSharing.qml:66
234−msgid "Preview Share Item"
235−msgstr ""
236−
237407#: qml/Dash/PullToRefreshScopeStyle.qml:55
238408msgid "Pull to refresh…"
239409msgstr ""
@@ -250,11 +420,11 @@ msgstr ""
250420msgid "Manage"
251421msgstr ""
252422
253−#: qml/Dash/ScopesList.qml:101
423+#: qml/Dash/ScopesList.qml:102
254424msgid "Home"
255425msgstr ""
256426
257−#: qml/Dash/ScopesList.qml:102
427+#: qml/Dash/ScopesList.qml:103
258428msgid "Also installed"
259429msgstr ""
260430
@@ -264,16 +434,28 @@ msgid ""
264434"touch pad to interact with the pointer."
265435msgstr ""
266436
267−#: qml/Greeter/CoverPage.qml:118
437+#: qml/Greeter/CoverPage.qml:127
268438msgid "Unlock"
269439msgstr ""
270440
271−#: qml/Greeter/LoginList.qml:239
441+#: qml/Greeter/Greeter.qml:539
442+msgid "Try again"
443+msgstr ""
444+
445+#: qml/Greeter/LoginList.qml:63
446+msgid "Passphrase"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:64
450+msgid "Passcode"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:259
272454msgid "Retry"
273455msgstr ""
274456
275−#: qml/Greeter/LoginList.qml:240
276−msgid "Tap to unlock"
457+#: qml/Greeter/LoginList.qml:260
458+msgid "Log In"
277459msgstr ""
278460
279461#: qml/Greeter/NarrowView.qml:54
@@ -300,34 +482,34 @@ msgid ""
300482"and all personal data will be deleted."
301483msgstr ""
302484
303−#: qml/Greeter/NarrowView.qml:116
485+#: qml/Greeter/NarrowView.qml:129
304486#, qt-format
305487msgid "Enter %1"
306488msgstr ""
307489
308−#: qml/Greeter/NarrowView.qml:117
490+#: qml/Greeter/NarrowView.qml:130
309491msgid "Enter passphrase"
310492msgstr ""
311493
312−#: qml/Greeter/NarrowView.qml:118
494+#: qml/Greeter/NarrowView.qml:131
313495msgid "Enter passcode"
314496msgstr ""
315497
316−#: qml/Greeter/NarrowView.qml:119
498+#: qml/Greeter/NarrowView.qml:135
317499#, qt-format
318500msgid "Sorry, incorrect %1"
319501msgstr ""
320502
321−#: qml/Greeter/NarrowView.qml:120
503+#: qml/Greeter/NarrowView.qml:136
322504msgid "Sorry, incorrect passphrase"
323505msgstr ""
324506
325−#: qml/Greeter/NarrowView.qml:121
507+#: qml/Greeter/NarrowView.qml:137
326508msgctxt "passphrase"
327509msgid "Please re-enter"
328510msgstr ""
329511
330−#: qml/Greeter/NarrowView.qml:122
512+#: qml/Greeter/NarrowView.qml:138
331513msgid "Sorry, incorrect passcode"
332514msgstr ""
333515
@@ -422,32 +604,12 @@ msgstr ""
422604msgid "Drag using 3 fingers any application from one window to the other"
423605msgstr ""
424606
425−#: qml/Tutorial/TutorialBottom.qml:78
426−msgid "Swipe up to add a contact"
427−msgstr ""
428−
429−#: qml/Tutorial/TutorialBottom.qml:80
430−msgid "Swipe up for favorite calculations"
431−msgstr ""
432−
433−#: qml/Tutorial/TutorialBottom.qml:82
434−msgid "Swipe up for recent calls"
435−msgstr ""
436−
437−#: qml/Tutorial/TutorialBottom.qml:84
438−msgid "Swipe up to create a message"
439−msgstr ""
440−
441−#: qml/Tutorial/TutorialBottom.qml:85
442−msgid "Swipe up to manage the app"
443−msgstr ""
444−
445−#: qml/Tutorial/TutorialLeftLong.qml:47
607+#: qml/Tutorial/TutorialLeftLong.qml:49
446608msgid "Long swipe from the left edge to open the Today scope"
447609msgstr ""
448610
449611#: qml/Tutorial/TutorialLeft.qml:47
450−msgid "Swipe from the left edge to open the launcher"
612+msgid "Short swipe from the left edge to open the launcher"
451613msgstr ""
452614
453615#: qml/Tutorial/TutorialRight.qml:55
@@ -455,15 +617,11 @@ msgid "Push your mouse against the right edge to view your open apps"
455617msgstr ""
456618
457619#: qml/Tutorial/TutorialRight.qml:56
458−msgid "Short or long swipe from the right edge to view your open apps"
620+msgid "Swipe from the right edge to view your open apps"
459621msgstr ""
460622
461623#: qml/Tutorial/TutorialTop.qml:53
462−msgid "Swipe from the top right edge to open the notification bar"
463−msgstr ""
464−
465−#: qml/Tutorial/TutorialTop.qml:54
466−msgid "Swipe from the top edge to open the notification bar"
624+msgid "Swipe from the top edge to access notifications and quick settings"
467625msgstr ""
468626
469627#: qml/Wizard/Page.qml:54
@@ -475,15 +633,32 @@ msgstr ""
475633msgid "Language"
476634msgstr ""
477635
478−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
636+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
479637#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
480638#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
481639#: qml/Wizard/Pages/75-report-check.qml:84
482−#: qml/Wizard/Pages/passcode-desktop.qml:124
640+#: qml/Wizard/Pages/passcode-desktop.qml:141
483641#: qml/Wizard/Pages/password-set.qml:141
484642msgid "Next"
485643msgstr ""
486644
645+#: qml/Wizard/Pages/20-keyboard.qml:30
646+msgid "Select Keyboard"
647+msgstr ""
648+
649+#: qml/Wizard/Pages/20-keyboard.qml:70
650+msgid "Keyboard language"
651+msgstr ""
652+
653+#: qml/Wizard/Pages/20-keyboard.qml:92
654+msgid "Keyboard layout"
655+msgstr ""
656+
657+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
658+#: qml/Wizard/Pages/sim.qml:101
659+msgid "Skip"
660+msgstr ""
661+
487662#: qml/Wizard/Pages/30-wifi.qml:29
488663msgid "Connect to Wi‑Fi"
489664msgstr ""
@@ -500,11 +675,6 @@ msgstr ""
500675msgid "No available Wi-Fi networks"
501676msgstr ""
502677
503−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
504−#: qml/Wizard/Pages/sim.qml:101
505−msgid "Skip"
506−msgstr ""
507−
508678#: qml/Wizard/Pages/40-location.qml:27
509679msgid "Location Services"
510680msgstr ""
@@ -588,6 +758,35 @@ msgstr ""
588758msgid "Privacy policy"
589759msgstr ""
590760
761+#: qml/Wizard/Pages/77-system-update.qml:28
762+msgid "Update Device"
763+msgstr ""
764+
765+#: qml/Wizard/Pages/77-system-update.qml:55
766+msgid ""
767+"There is a system update available and ready to install. Afterwards, the "
768+"device will automatically restart."
769+msgstr ""
770+
771+#: qml/Wizard/Pages/77-system-update.qml:76
772+msgctxt "string identifying name of the update"
773+msgid "Ubuntu system"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:83
777+#, qt-format
778+msgctxt "version of the system update"
779+msgid "Version %1"
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:102
783+msgid "This could take a few minutes..."
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:116
787+msgid "Install and restart now"
788+msgstr ""
789+
591790#: qml/Wizard/Pages/80-finished.qml:89
592791msgid "Welcome to Ubuntu"
593792msgstr ""
@@ -631,7 +830,7 @@ msgid "Service Terms"
631830msgstr ""
632831
633832#: qml/Wizard/Pages/passcode-confirm.qml:43
634−#: qml/Wizard/Pages/passcode-desktop.qml:80
833+#: qml/Wizard/Pages/passcode-desktop.qml:96
635834msgid "Confirm passcode"
636835msgstr ""
637836
@@ -648,24 +847,24 @@ msgstr ""
648847msgid "Lock Screen Passcode"
649848msgstr ""
650849
651−#: qml/Wizard/Pages/passcode-desktop.qml:56
850+#: qml/Wizard/Pages/passcode-desktop.qml:60
652851msgid "Enter 4 numbers to setup your passcode"
653852msgstr ""
654853
655−#: qml/Wizard/Pages/passcode-desktop.qml:65
854+#: qml/Wizard/Pages/passcode-desktop.qml:76
656855#: qml/Wizard/Pages/passcode-set.qml:54
657856msgid "Choose passcode"
658857msgstr ""
659858
660−#: qml/Wizard/Pages/passcode-desktop.qml:105
859+#: qml/Wizard/Pages/passcode-desktop.qml:126
661860msgid "Passcode too short"
662861msgstr ""
663862
664−#: qml/Wizard/Pages/passcode-desktop.qml:107
863+#: qml/Wizard/Pages/passcode-desktop.qml:128
665864msgid "Passcodes match"
666865msgstr ""
667866
668−#: qml/Wizard/Pages/passcode-desktop.qml:109
867+#: qml/Wizard/Pages/passcode-desktop.qml:130
669868msgid "Passcodes do not match"
670869msgstr ""
671870
@@ -714,26 +913,30 @@ msgid "To proceed with no SIM tap Skip."
714913msgstr ""
715914
716915#: qml/Wizard/PasswordMeter.qml:87
717−msgid "Passwords match"
916+msgid "Password too short"
718917msgstr ""
719918
720919#: qml/Wizard/PasswordMeter.qml:89
920+msgid "Passwords match"
921+msgstr ""
922+
923+#: qml/Wizard/PasswordMeter.qml:91
721924msgid "Passwords do not match"
722925msgstr ""
723926
724−#: qml/Wizard/PasswordMeter.qml:93
927+#: qml/Wizard/PasswordMeter.qml:95
725928msgid "Strong password"
726929msgstr ""
727930
728−#: qml/Wizard/PasswordMeter.qml:95
931+#: qml/Wizard/PasswordMeter.qml:97
729932msgid "Fair password"
730933msgstr ""
731934
732−#: qml/Wizard/PasswordMeter.qml:97
935+#: qml/Wizard/PasswordMeter.qml:99
733936msgid "Weak password"
734937msgstr ""
735938
736−#: qml/Wizard/PasswordMeter.qml:99
939+#: qml/Wizard/PasswordMeter.qml:101
737940msgid "Very weak password"
738941msgstr ""
739942
po/bn.po+300−94
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-11-27 19:38+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bengali <bn@li.org>\n"
@@ -15,93 +15,93 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "পাসওয়ার্ড: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "পিন"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "আনপিন"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "ডিভাইসটি লক করা"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr "অধিকবার পাসফ্রেজ ভুল দেওয়ার কারনে আপনার আইডি লক করা হয়েছে"
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr "অধিকবার পাসকোড ভুল করার কারনে আপনার আইডি লক করা হয়েছে"
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
5555msgstr[1] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr ""
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr "আপনি কি লগ আউট করতে চান?"
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr "লক করুন"
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "বাতিল"
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr "পুনরায় চালু"
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr "আপনি কি পুনরায় চালু করতে চান?"
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr "না"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "হ্যাঁ"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr ""
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
@@ -109,28 +109,198 @@ msgstr ""
109109"আপনি নিশ্চিত যে আপনি\n"
110110"বন্ধ করতে চান?"
111111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113113msgctxt "Button: Power off the system"
114114msgid "Power off"
115115msgstr "বন্ধ করুন"
116116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118118msgctxt "Button: Restart the system"
119119msgid "Restart"
120120msgstr "পুনরায় চালু"
121121
122−#: qml/Components/Lockscreen.qml:231
122+#: qml/Components/KeyboardShortcutsOverlay.qml:41
123+msgid "Keyboard Shortcuts"
124+msgstr ""
125+
126+#: qml/Components/KeyboardShortcutsOverlay.qml:55
127+msgid "Unity 8"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:62
131+msgid "PrtScr"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:67
135+msgid "Takes a screenshot."
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:75
139+msgid "Alt + PrtScr"
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:80
143+msgid "Takes a screenshot of a window."
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:88
147+msgid "Super + Space"
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:93
151+msgid "Switches to next keyboard layout."
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:101
155+msgid "Super + Shift + Space"
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:106
159+msgid "Switches to previous keyboard layout."
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:118
163+msgid "Launcher"
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:125
167+msgid "Super (Hold)"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:130
171+msgid "Opens the launcher, displays shortcuts."
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:138
175+msgid "Alt + F1"
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:143
179+msgid "Opens launcher keyboard navigation mode."
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:151
183+msgid "Super + Tab"
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:156
187+msgid "Switches applications via the launcher."
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:164
191+msgid "Super + 0 to 9"
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:169
195+msgid "Same as clicking on a launcher icon."
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:181
199+msgid "Scopes"
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:188
203+msgid "Super (Tap)"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:193
207+msgid "Opens the Scopes home."
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:209
211+msgid "Switching"
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:216
215+msgid "Alt + Tab"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:221
219+msgid "Switches between applications."
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:229
223+msgid "Super + W"
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:234
227+msgid "Opens the desktop spread."
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:242
231+msgid "Cursor Left or Right"
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:247
235+msgid "Moves the focus."
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:259
239+msgid "Windows"
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:266
243+msgid "Ctrl + Super + D"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:271
247+msgid "Minimizes all windows."
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:279
251+msgid "Ctrl + Super + Up"
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:284
255+msgid "Maximizes the current window."
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:292
259+msgid "Ctrl + Super + Down"
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:297
263+msgid "Minimizes or restores the current window."
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:305
267+msgid "Ctrl + Super + Left or Right"
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:310
271+msgid "Semi-maximizes the current window."
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:318
275+msgid "Alt + F4"
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:323
279+msgid "Closes the current window."
280+msgstr ""
281+
282+#: qml/Components/Lockscreen.qml:239
123283msgid "Return to Call"
124284msgstr "কল এ ফিরে যান"
125285
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Emergency Call"
128288msgstr "জরুরী কল"
129289
130−#: qml/Components/Lockscreen.qml:263
290+#: qml/Components/Lockscreen.qml:271
131291msgid "OK"
132292msgstr "ঠিক আছে"
133293
294+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
295+#, qt-format
296+msgid "%1:%2:%3"
297+msgstr ""
298+
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
300+#, qt-format
301+msgid "%1:%2"
302+msgstr ""
303+
134304#: qml/Components/ModeSwitchWarningDialog.qml:32
135305msgid "Apps may have unsaved data:"
136306msgstr ""
@@ -157,6 +327,10 @@ msgstr ""
157327msgid "Close all"
158328msgstr ""
159329
330+#: qml/Components/SharingPicker.qml:54
331+msgid "Preview Share Item"
332+msgstr ""
333+
160334#: qml/Dash/DashPageHeader.qml:333
161335msgctxt "Button: Open the Ubuntu Store"
162336msgid "Store"
@@ -188,15 +362,15 @@ msgstr ""
188362msgid "Reset"
189363msgstr ""
190364
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
365+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192366msgid "Show less"
193367msgstr ""
194368
195−#: qml/Dash/GenericScopeView.qml:579
369+#: qml/Dash/GenericScopeView.qml:580
196370msgid "Show all"
197371msgstr ""
198372
199−#: qml/Dash/GenericScopeView.qml:636
373+#: qml/Dash/GenericScopeView.qml:637
200374msgctxt "Label: Hint for dash search line edit"
201375msgid "Search"
202376msgstr "খুঁজুন"
@@ -230,10 +404,6 @@ msgstr "রেটিং দিন"
230404msgid "Add a review"
231405msgstr "আপনার মতামত দিন"
232406
233−#: qml/Dash/Previews/PreviewSharing.qml:66
234−msgid "Preview Share Item"
235−msgstr ""
236−
237407#: qml/Dash/PullToRefreshScopeStyle.qml:55
238408msgid "Pull to refresh…"
239409msgstr "রিফ্রেশ করার জন্য টানুন"
@@ -250,11 +420,11 @@ msgstr "অবস্থান নির্ণয় চালু করুন"
250420msgid "Manage"
251421msgstr "ব্যবস্থাপনা"
252422
253−#: qml/Dash/ScopesList.qml:101
423+#: qml/Dash/ScopesList.qml:102
254424msgid "Home"
255425msgstr ""
256426
257−#: qml/Dash/ScopesList.qml:102
427+#: qml/Dash/ScopesList.qml:103
258428msgid "Also installed"
259429msgstr "আরও ইন্সটল করা রয়েছে..."
260430
@@ -264,17 +434,29 @@ msgid ""
264434"touch pad to interact with the pointer."
265435msgstr ""
266436
267−#: qml/Greeter/CoverPage.qml:118
437+#: qml/Greeter/CoverPage.qml:127
268438msgid "Unlock"
269439msgstr "লক খুলুন"
270440
271−#: qml/Greeter/LoginList.qml:239
441+#: qml/Greeter/Greeter.qml:539
442+msgid "Try again"
443+msgstr ""
444+
445+#: qml/Greeter/LoginList.qml:63
446+msgid "Passphrase"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:64
450+msgid "Passcode"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:259
272454msgid "Retry"
273455msgstr ""
274456
275−#: qml/Greeter/LoginList.qml:240
276−msgid "Tap to unlock"
277−msgstr "লক খোলার জন্য চাপ দিন"
457+#: qml/Greeter/LoginList.qml:260
458+msgid "Log In"
459+msgstr ""
278460
279461#: qml/Greeter/NarrowView.qml:54
280462msgid "Sorry, incorrect passphrase."
@@ -301,34 +483,34 @@ msgid ""
301483"and all personal data will be deleted."
302484msgstr "ভুল পাসকোড প্রদান করলে, আপনার ফোনটির সকল ব্যক্তিগত তথ্য মুছে যাবে।"
303485
304−#: qml/Greeter/NarrowView.qml:116
486+#: qml/Greeter/NarrowView.qml:129
305487#, qt-format
306488msgid "Enter %1"
307489msgstr "%1 লিখুন"
308490
309−#: qml/Greeter/NarrowView.qml:117
491+#: qml/Greeter/NarrowView.qml:130
310492msgid "Enter passphrase"
311493msgstr "পাসওয়ার্ড লিখুন"
312494
313−#: qml/Greeter/NarrowView.qml:118
495+#: qml/Greeter/NarrowView.qml:131
314496msgid "Enter passcode"
315497msgstr "পাসকোড লিখুন"
316498
317−#: qml/Greeter/NarrowView.qml:119
499+#: qml/Greeter/NarrowView.qml:135
318500#, qt-format
319501msgid "Sorry, incorrect %1"
320502msgstr "দুঃখিত, %1 ভুল হয়েছে"
321503
322−#: qml/Greeter/NarrowView.qml:120
504+#: qml/Greeter/NarrowView.qml:136
323505msgid "Sorry, incorrect passphrase"
324506msgstr "দুঃখিত, পাসওয়ার্ড ভুল হয়েছে"
325507
326−#: qml/Greeter/NarrowView.qml:121
508+#: qml/Greeter/NarrowView.qml:137
327509msgctxt "passphrase"
328510msgid "Please re-enter"
329511msgstr "অনুগ্রহ করে আবার লিখুন"
330512
331−#: qml/Greeter/NarrowView.qml:122
513+#: qml/Greeter/NarrowView.qml:138
332514msgid "Sorry, incorrect passcode"
333515msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
334516
@@ -423,32 +605,12 @@ msgstr "কল ব্যাক"
423605msgid "Drag using 3 fingers any application from one window to the other"
424606msgstr ""
425607
426−#: qml/Tutorial/TutorialBottom.qml:78
427−msgid "Swipe up to add a contact"
428−msgstr ""
429−
430−#: qml/Tutorial/TutorialBottom.qml:80
431−msgid "Swipe up for favorite calculations"
432−msgstr ""
433−
434−#: qml/Tutorial/TutorialBottom.qml:82
435−msgid "Swipe up for recent calls"
436−msgstr ""
437−
438−#: qml/Tutorial/TutorialBottom.qml:84
439−msgid "Swipe up to create a message"
440−msgstr ""
441−
442−#: qml/Tutorial/TutorialBottom.qml:85
443−msgid "Swipe up to manage the app"
444−msgstr ""
445−
446−#: qml/Tutorial/TutorialLeftLong.qml:47
608+#: qml/Tutorial/TutorialLeftLong.qml:49
447609msgid "Long swipe from the left edge to open the Today scope"
448610msgstr ""
449611
450612#: qml/Tutorial/TutorialLeft.qml:47
451−msgid "Swipe from the left edge to open the launcher"
613+msgid "Short swipe from the left edge to open the launcher"
452614msgstr ""
453615
454616#: qml/Tutorial/TutorialRight.qml:55
@@ -456,15 +618,11 @@ msgid "Push your mouse against the right edge to view your open apps"
456618msgstr ""
457619
458620#: qml/Tutorial/TutorialRight.qml:56
459−msgid "Short or long swipe from the right edge to view your open apps"
621+msgid "Swipe from the right edge to view your open apps"
460622msgstr ""
461623
462624#: qml/Tutorial/TutorialTop.qml:53
463−msgid "Swipe from the top right edge to open the notification bar"
464−msgstr ""
465−
466−#: qml/Tutorial/TutorialTop.qml:54
467−msgid "Swipe from the top edge to open the notification bar"
625+msgid "Swipe from the top edge to access notifications and quick settings"
468626msgstr ""
469627
470628#: qml/Wizard/Page.qml:54
@@ -476,15 +634,32 @@ msgstr ""
476634msgid "Language"
477635msgstr ""
478636
479−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
637+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
480638#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
481639#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
482640#: qml/Wizard/Pages/75-report-check.qml:84
483−#: qml/Wizard/Pages/passcode-desktop.qml:124
641+#: qml/Wizard/Pages/passcode-desktop.qml:141
484642#: qml/Wizard/Pages/password-set.qml:141
485643msgid "Next"
486644msgstr ""
487645
646+#: qml/Wizard/Pages/20-keyboard.qml:30
647+msgid "Select Keyboard"
648+msgstr ""
649+
650+#: qml/Wizard/Pages/20-keyboard.qml:70
651+msgid "Keyboard language"
652+msgstr ""
653+
654+#: qml/Wizard/Pages/20-keyboard.qml:92
655+msgid "Keyboard layout"
656+msgstr ""
657+
658+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
659+#: qml/Wizard/Pages/sim.qml:101
660+msgid "Skip"
661+msgstr "এড়িয়ে যান"
662+
488663#: qml/Wizard/Pages/30-wifi.qml:29
489664msgid "Connect to Wi‑Fi"
490665msgstr ""
@@ -501,11 +676,6 @@ msgstr ""
501676msgid "No available Wi-Fi networks"
502677msgstr ""
503678
504−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
505−#: qml/Wizard/Pages/sim.qml:101
506−msgid "Skip"
507−msgstr "এড়িয়ে যান"
508−
509679#: qml/Wizard/Pages/40-location.qml:27
510680msgid "Location Services"
511681msgstr ""
@@ -589,6 +759,35 @@ msgstr ""
589759msgid "Privacy policy"
590760msgstr ""
591761
762+#: qml/Wizard/Pages/77-system-update.qml:28
763+msgid "Update Device"
764+msgstr ""
765+
766+#: qml/Wizard/Pages/77-system-update.qml:55
767+msgid ""
768+"There is a system update available and ready to install. Afterwards, the "
769+"device will automatically restart."
770+msgstr ""
771+
772+#: qml/Wizard/Pages/77-system-update.qml:76
773+msgctxt "string identifying name of the update"
774+msgid "Ubuntu system"
775+msgstr ""
776+
777+#: qml/Wizard/Pages/77-system-update.qml:83
778+#, qt-format
779+msgctxt "version of the system update"
780+msgid "Version %1"
781+msgstr ""
782+
783+#: qml/Wizard/Pages/77-system-update.qml:102
784+msgid "This could take a few minutes..."
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:116
788+msgid "Install and restart now"
789+msgstr ""
790+
592791#: qml/Wizard/Pages/80-finished.qml:89
593792msgid "Welcome to Ubuntu"
594793msgstr ""
@@ -632,7 +831,7 @@ msgid "Service Terms"
632831msgstr ""
633832
634833#: qml/Wizard/Pages/passcode-confirm.qml:43
635−#: qml/Wizard/Pages/passcode-desktop.qml:80
834+#: qml/Wizard/Pages/passcode-desktop.qml:96
636835msgid "Confirm passcode"
637836msgstr ""
638837
@@ -649,24 +848,24 @@ msgstr ""
649848msgid "Lock Screen Passcode"
650849msgstr ""
651850
652−#: qml/Wizard/Pages/passcode-desktop.qml:56
851+#: qml/Wizard/Pages/passcode-desktop.qml:60
653852msgid "Enter 4 numbers to setup your passcode"
654853msgstr ""
655854
656−#: qml/Wizard/Pages/passcode-desktop.qml:65
855+#: qml/Wizard/Pages/passcode-desktop.qml:76
657856#: qml/Wizard/Pages/passcode-set.qml:54
658857msgid "Choose passcode"
659858msgstr ""
660859
661−#: qml/Wizard/Pages/passcode-desktop.qml:105
860+#: qml/Wizard/Pages/passcode-desktop.qml:126
662861msgid "Passcode too short"
663862msgstr ""
664863
665−#: qml/Wizard/Pages/passcode-desktop.qml:107
864+#: qml/Wizard/Pages/passcode-desktop.qml:128
666865msgid "Passcodes match"
667866msgstr ""
668867
669−#: qml/Wizard/Pages/passcode-desktop.qml:109
868+#: qml/Wizard/Pages/passcode-desktop.qml:130
670869msgid "Passcodes do not match"
671870msgstr ""
672871
@@ -715,26 +914,30 @@ msgid "To proceed with no SIM tap Skip."
715914msgstr ""
716915
717916#: qml/Wizard/PasswordMeter.qml:87
718−msgid "Passwords match"
917+msgid "Password too short"
719918msgstr ""
720919
721920#: qml/Wizard/PasswordMeter.qml:89
921+msgid "Passwords match"
922+msgstr ""
923+
924+#: qml/Wizard/PasswordMeter.qml:91
722925msgid "Passwords do not match"
723926msgstr ""
724927
725−#: qml/Wizard/PasswordMeter.qml:93
928+#: qml/Wizard/PasswordMeter.qml:95
726929msgid "Strong password"
727930msgstr ""
728931
729−#: qml/Wizard/PasswordMeter.qml:95
932+#: qml/Wizard/PasswordMeter.qml:97
730933msgid "Fair password"
731934msgstr ""
732935
733−#: qml/Wizard/PasswordMeter.qml:97
936+#: qml/Wizard/PasswordMeter.qml:99
734937msgid "Weak password"
735938msgstr ""
736939
737−#: qml/Wizard/PasswordMeter.qml:99
940+#: qml/Wizard/PasswordMeter.qml:101
738941msgid "Very weak password"
739942msgstr ""
740943
@@ -860,6 +1063,9 @@ msgstr ""
8601063#~ msgid "Shut down"
8611064#~ msgstr "বন্ধ করুন"
8621065
1066+#~ msgid "Tap to unlock"
1067+#~ msgstr "লক খোলার জন্য চাপ দিন"
1068+
8631069#~ msgid "Let’s get started."
8641070#~ msgstr "আসুন শুরু করা যাক।"
8651071
po/br.po+312−100
@@ -7,105 +7,105 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
11−"PO-Revision-Date: 2016-04-27 12:20+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11+"PO-Revision-Date: 2016-08-29 11:37+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Ger-tremen : "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Spilhennañ ar verradenn"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Mont kuit"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Dispilhennañ ar verradenn"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "Benveg prennet"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545"Prennet eo bet ho penveg abalamour da re a daolioù-esae c'hwitet evit merkañ "
4646"ho frazenn-dremen."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Prennet eo bet ho penveg abalamour da re a daolioù-esae evit merkañ ho kod-"
5252"tremen."
5353
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
5555#, qt-format
5656msgid "Please wait %1 minute and then try again…"
5757msgid_plural "Please wait %1 minutes and then try again…"
5858msgstr[0] "Gortozit %1 vunutenn, mar plij, hag esaeit en-dro..."
5959msgstr[1] "Gortozit %1 a vunutoù, mar plij, hag esaeit en-dro..."
6060
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
6262msgctxt "Title: Lock/Log out dialog"
6363msgid "Log out"
6464msgstr "Digevreañ"
6565
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6767msgid "Are you sure you want to log out?"
6868msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
6969
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
7171msgctxt "Button: Lock the system"
7272msgid "Lock"
7373msgstr "Prennañ"
7474
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7676msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Digevreañ"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8181#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Nullañ"
8585
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8787msgctxt "Title: Reboot dialog"
8888msgid "Reboot"
8989msgstr "Adloc'hañ"
9090
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
9292msgid "Are you sure you want to reboot?"
9393msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "N'on ket"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Ya"
102102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104104msgctxt "Title: Power off/Restart dialog"
105105msgid "Power"
106106msgstr "Enaouiñ"
107107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109109msgid ""
110110"Are you sure you would like\n"
111111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113113"Ha sur oc'h e fell deoc'h\n"
114114"troc'hañ an tredan ?"
115115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117117msgctxt "Button: Power off the system"
118118msgid "Power off"
119119msgstr "Lazhañ"
120120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122122msgctxt "Button: Restart the system"
123123msgid "Restart"
124124msgstr "Adloc'hañ"
125125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr "Berradennoù klavier"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr "Unity 8"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr "Moulsk"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr "Tapout ur skeudenn eus ar skramm"
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr "Tapout ur skeudenn eus ur prenestr"
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr "Lañser"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr "Kefluskerioù enklask"
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr "Digeriñ pajenn degemer ar c'hefluskerioù enklask."
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr "Bihanaat an holl brenestroù."
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Return to Call"
128288msgstr "Distreiñ d'ar bellgomzadenn"
129289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131291msgid "Emergency Call"
132292msgstr "Pellgomzadenn vallus"
133293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135295msgid "OK"
136296msgstr "Mat eo"
137297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr "%1:%2:%3"
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr "%1:%2"
307+
138308#: qml/Components/ModeSwitchWarningDialog.qml:32
139309msgid "Apps may have unsaved data:"
140310msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
@@ -164,6 +334,10 @@ msgstr "Adkevreañ bremañ !"
164334msgid "Close all"
165335msgstr "Serriñ pep tra"
166336
337+#: qml/Components/SharingPicker.qml:54
338+msgid "Preview Share Item"
339+msgstr "Rakwelet an elfenn lodet"
340+
167341#: qml/Dash/DashPageHeader.qml:333
168342msgctxt "Button: Open the Ubuntu Store"
169343msgid "Store"
@@ -195,15 +369,15 @@ msgstr "Purañ ho tisoc'hoù"
195369msgid "Reset"
196370msgstr "Adderaouekaat"
197371
198−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
372+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
199373msgid "Show less"
200−msgstr ""
374+msgstr "Diskouez nebeutoc'h"
201375
202−#: qml/Dash/GenericScopeView.qml:579
376+#: qml/Dash/GenericScopeView.qml:580
203377msgid "Show all"
204−msgstr ""
378+msgstr "Diskouez pep tra"
205379
206−#: qml/Dash/GenericScopeView.qml:636
380+#: qml/Dash/GenericScopeView.qml:637
207381msgctxt "Label: Hint for dash search line edit"
208382msgid "Search"
209383msgstr "Klask"
@@ -237,10 +411,6 @@ msgstr "Priziit an dra-mañ"
237411msgid "Add a review"
238412msgstr "Ouzhpennañ un ali"
239413
240−#: qml/Dash/Previews/PreviewSharing.qml:66
241−msgid "Preview Share Item"
242−msgstr "Rakwelet an elfenn lodet"
243−
244414#: qml/Dash/PullToRefreshScopeStyle.qml:55
245415msgid "Pull to refresh…"
246416msgstr "Tennañ evit freskaat..."
@@ -257,11 +427,11 @@ msgstr "Gweredekaat ar roadennoù lec'hiañ"
257427msgid "Manage"
258428msgstr "Merañ"
259429
260−#: qml/Dash/ScopesList.qml:101
430+#: qml/Dash/ScopesList.qml:102
261431msgid "Home"
262432msgstr "Er gêr"
263433
264−#: qml/Dash/ScopesList.qml:102
434+#: qml/Dash/ScopesList.qml:103
265435msgid "Also installed"
266436msgstr "Staliet ivez"
267437
@@ -271,17 +441,29 @@ msgid ""
271441"touch pad to interact with the pointer."
272442msgstr ""
273443
274−#: qml/Greeter/CoverPage.qml:118
444+#: qml/Greeter/CoverPage.qml:127
275445msgid "Unlock"
276446msgstr "Dibrennañ"
277447
278−#: qml/Greeter/LoginList.qml:239
448+#: qml/Greeter/Greeter.qml:539
449+msgid "Try again"
450+msgstr "Esaeañ adarre"
451+
452+#: qml/Greeter/LoginList.qml:63
453+msgid "Passphrase"
454+msgstr ""
455+
456+#: qml/Greeter/LoginList.qml:64
457+msgid "Passcode"
458+msgstr "Kod-tremen"
459+
460+#: qml/Greeter/LoginList.qml:259
279461msgid "Retry"
280462msgstr "Esaeañ en-dro"
281463
282−#: qml/Greeter/LoginList.qml:240
283−msgid "Tap to unlock"
284−msgstr "Pouezañ evit dibrennañ"
464+#: qml/Greeter/LoginList.qml:260
465+msgid "Log In"
466+msgstr "Kevreañ"
285467
286468#: qml/Greeter/NarrowView.qml:54
287469msgid "Sorry, incorrect passphrase."
@@ -311,34 +493,34 @@ msgstr ""
311493"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
312494"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
313495
314−#: qml/Greeter/NarrowView.qml:116
496+#: qml/Greeter/NarrowView.qml:129
315497#, qt-format
316498msgid "Enter %1"
317499msgstr "Merkañ %1"
318500
319−#: qml/Greeter/NarrowView.qml:117
501+#: qml/Greeter/NarrowView.qml:130
320502msgid "Enter passphrase"
321503msgstr "Merkañ ar frazenn-dremen"
322504
323−#: qml/Greeter/NarrowView.qml:118
505+#: qml/Greeter/NarrowView.qml:131
324506msgid "Enter passcode"
325507msgstr "Merkañ ar c'hod-tremen"
326508
327−#: qml/Greeter/NarrowView.qml:119
509+#: qml/Greeter/NarrowView.qml:135
328510#, qt-format
329511msgid "Sorry, incorrect %1"
330512msgstr "Siwazh, %1 direizh"
331513
332−#: qml/Greeter/NarrowView.qml:120
514+#: qml/Greeter/NarrowView.qml:136
333515msgid "Sorry, incorrect passphrase"
334516msgstr "Siwazh, frazenn-dremen direizh"
335517
336−#: qml/Greeter/NarrowView.qml:121
518+#: qml/Greeter/NarrowView.qml:137
337519msgctxt "passphrase"
338520msgid "Please re-enter"
339521msgstr "Adverkañ, mar plij"
340522
341−#: qml/Greeter/NarrowView.qml:122
523+#: qml/Greeter/NarrowView.qml:138
342524msgid "Sorry, incorrect passcode"
343525msgstr "Digarezit, kod-tremen direizh"
344526
@@ -433,32 +615,12 @@ msgstr "Gervel en-dro"
433615msgid "Drag using 3 fingers any application from one window to the other"
434616msgstr ""
435617
436−#: qml/Tutorial/TutorialBottom.qml:78
437−msgid "Swipe up to add a contact"
438−msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
439−
440−#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Swipe up for favorite calculations"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:82
445−msgid "Swipe up for recent calls"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Swipe up to create a message"
450−msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
451−
452−#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Swipe up to manage the app"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialLeftLong.qml:47
618+#: qml/Tutorial/TutorialLeftLong.qml:49
457619msgid "Long swipe from the left edge to open the Today scope"
458620msgstr ""
459621
460622#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
623+msgid "Short swipe from the left edge to open the launcher"
462624msgstr ""
463625
464626#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +628,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466628msgstr ""
467629
468630#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
631+msgid "Swipe from the right edge to view your open apps"
470632msgstr ""
471633
472634#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Swipe from the top right edge to open the notification bar"
474−msgstr ""
475−
476−#: qml/Tutorial/TutorialTop.qml:54
477−msgid "Swipe from the top edge to open the notification bar"
635+msgid "Swipe from the top edge to access notifications and quick settings"
478636msgstr ""
479637
480638#: qml/Wizard/Page.qml:54
@@ -486,15 +644,32 @@ msgstr "Distreiñ"
486644msgid "Language"
487645msgstr "Yezh"
488646
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
647+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
490648#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491649#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492650#: qml/Wizard/Pages/75-report-check.qml:84
493−#: qml/Wizard/Pages/passcode-desktop.qml:124
651+#: qml/Wizard/Pages/passcode-desktop.qml:141
494652#: qml/Wizard/Pages/password-set.qml:141
495653msgid "Next"
496654msgstr "War-lerc'h"
497655
656+#: qml/Wizard/Pages/20-keyboard.qml:30
657+msgid "Select Keyboard"
658+msgstr "Diuzañ ar c'hlavier"
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:70
661+msgid "Keyboard language"
662+msgstr "Yezh ar c'hlavier"
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:92
665+msgid "Keyboard layout"
666+msgstr "Aozadur ar c'hlavier"
667+
668+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
669+#: qml/Wizard/Pages/sim.qml:101
670+msgid "Skip"
671+msgstr "Tremen hebiou"
672+
498673#: qml/Wizard/Pages/30-wifi.qml:29
499674msgid "Connect to Wi‑Fi"
500675msgstr "Kevreañ ouzh ar Wi-Fi"
@@ -511,11 +686,6 @@ msgstr "Rouedadoù Wi-Fi da gaout"
511686msgid "No available Wi-Fi networks"
512687msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
513688
514−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515−#: qml/Wizard/Pages/sim.qml:101
516−msgid "Skip"
517−msgstr "Tremen hebiou"
518−
519689#: qml/Wizard/Pages/40-location.qml:27
520690msgid "Location Services"
521691msgstr "Servijoù lec'hiañ"
@@ -546,7 +716,7 @@ msgstr "Arabat implijout ma lec'h"
546716
547717#: qml/Wizard/Pages/40-location.qml:260
548718msgid "You can change it later in System Settings."
549−msgstr ""
719+msgstr "Gallout a rit cheñch se diwezhatoc'h en arventennoù ar reizhiad."
550720
551721#: qml/Wizard/Pages/50-timezone.qml:29
552722msgid "Time Zone"
@@ -599,6 +769,35 @@ msgstr ""
599769msgid "Privacy policy"
600770msgstr "Reolennoù buhez prevez"
601771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr "Hizivaat ar benveg"
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr "Reizhiad Ubuntu"
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr "Stumm %1"
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr "Gallout a ra padout un nebeud munutennoù..."
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr "Staliañ hag adloc'hañ bremañ"
800+
602801#: qml/Wizard/Pages/80-finished.qml:89
603802msgid "Welcome to Ubuntu"
604803msgstr "Donemat en Ubuntu"
@@ -642,7 +841,7 @@ msgid "Service Terms"
642841msgstr "Divizoù servij"
643842
644843#: qml/Wizard/Pages/passcode-confirm.qml:43
645−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
646845msgid "Confirm passcode"
647846msgstr "Kadarnaat ar c'hod-tremen"
648847
@@ -659,24 +858,24 @@ msgstr "Skrivit adarre, mar plij."
659858msgid "Lock Screen Passcode"
660859msgstr "Kod da brennañ ar skramm"
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
663862msgid "Enter 4 numbers to setup your passcode"
664863msgstr "Skrivit 4 sifr evit lakaat ho kod"
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
667866#: qml/Wizard/Pages/passcode-set.qml:54
668867msgid "Choose passcode"
669868msgstr "Choaz ur c'hod"
670869
671−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
672871msgid "Passcode too short"
673872msgstr "Kod re verr"
674873
675−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
676875msgid "Passcodes match"
677876msgstr "klotañ a ra ar c'hodoù an eil gant egile"
678877
679−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
680879msgid "Passcodes do not match"
681880msgstr "Ne glot ket ar c'hodoù an eil gant egile"
682881
@@ -710,7 +909,7 @@ msgstr "Lakaet ez eus bet ur gartenn SIM"
710909
711910#: qml/Wizard/Pages/sim.qml:55
712911msgid "You must restart the device to access the mobile network."
713−msgstr ""
912+msgstr "Ret eo deoc'h adloc'hañ ar benveg evit mont d'ar rouedad hezoug."
714913
715914#: qml/Wizard/Pages/sim.qml:59
716915msgid "Restart"
@@ -718,33 +917,37 @@ msgstr "Adloc'hañ"
718917
719918#: qml/Wizard/Pages/sim.qml:78
720919msgid "You won’t be able to make calls or use text messaging without a SIM."
721−msgstr ""
920+msgstr "Ne c'halloc'h ket pellgomz na kas kemennadennoù hep kartenn SIM."
722921
723922#: qml/Wizard/Pages/sim.qml:90
724923msgid "To proceed with no SIM tap Skip."
725924msgstr ""
726925
727926#: qml/Wizard/PasswordMeter.qml:87
927+msgid "Password too short"
928+msgstr "Re verr eo ar ger-tremen"
929+
930+#: qml/Wizard/PasswordMeter.qml:89
728931msgid "Passwords match"
729932msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
730933
731−#: qml/Wizard/PasswordMeter.qml:89
934+#: qml/Wizard/PasswordMeter.qml:91
732935msgid "Passwords do not match"
733936msgstr "Ne glot ket ar gerioù-tremen"
734937
735−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
736939msgid "Strong password"
737940msgstr "Ger-tremen sur"
738941
739−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
740943msgid "Fair password"
741944msgstr "Ger-tremen reizh"
742945
743−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
744947msgid "Weak password"
745948msgstr "Ger-tremen diasur"
746949
747−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
748951msgid "Very weak password"
749952msgstr "Ger-tremen diasur-kenañ"
750953
@@ -965,6 +1168,9 @@ msgstr "Ger-tremen diasur-kenañ"
9651168#~ msgid "%1 〉"
9661169#~ msgstr "%1 〉"
9671170
1171+#~ msgid "Tap to unlock"
1172+#~ msgstr "Pouezañ evit dibrennañ"
1173+
9681174#~ msgid "This action does different things for different apps"
9691175#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
9701176
@@ -1072,3 +1278,9 @@ msgstr "Ger-tremen diasur-kenañ"
10721278
10731279#~ msgid "Call back"
10741280#~ msgstr "Gervel en-dro"
1281+
1282+#~ msgid "Swipe up to add a contact"
1283+#~ msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
1284+
1285+#~ msgid "Swipe up to create a message"
1286+#~ msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
po/bs.po+300−94
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-12-01 20:06+0000\n"
1212"Last-Translator: Kenan Gutić <Unknown>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,39 +16,39 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
20+"X-Generator: Launchpad (build 18179)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Šifra: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
2828msgid "Pin shortcut"
2929msgstr "Prikačite prečicu"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
3232msgid "Quit"
3333msgstr "Napusti"
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
3636msgid "Unpin shortcut"
3737msgstr "Otkačite prečicu"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
4040msgid "Device Locked"
4141msgstr "Uređaj zaključan"
4242
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
4444msgid "You have been locked out due to too many failed passphrase attempts."
4545msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupne fraze."
4646
47−#: qml/Components/DelayedLockscreen.qml:65
47+#: qml/Components/DelayedLockscreen.qml:66
4848msgid "You have been locked out due to too many failed passcode attempts."
4949msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupnog koda."
5050
51−#: qml/Components/DelayedLockscreen.qml:74
51+#: qml/Components/DelayedLockscreen.qml:75
5252#, qt-format
5353msgid "Please wait %1 minute and then try again…"
5454msgid_plural "Please wait %1 minutes and then try again…"
@@ -56,54 +56,54 @@ msgstr[0] "Molim pričekajte %1 minutu i onda pokušajte ponovo..."
5656msgstr[1] "Molim pričekajte %1 minute i onda pokušajte ponovo..."
5757msgstr[2] "Molim pričekajte %1 minuta i onda pokušajte ponovo"
5858
59−#: qml/Components/Dialogs.qml:144
59+#: qml/Components/Dialogs.qml:146
6060msgctxt "Title: Lock/Log out dialog"
6161msgid "Log out"
6262msgstr "Odjavite se"
6363
64−#: qml/Components/Dialogs.qml:145
64+#: qml/Components/Dialogs.qml:147
6565msgid "Are you sure you want to log out?"
6666msgstr "Da li ste sigurni da se želite odjaviti?"
6767
68−#: qml/Components/Dialogs.qml:147
68+#: qml/Components/Dialogs.qml:149
6969msgctxt "Button: Lock the system"
7070msgid "Lock"
7171msgstr "Zaključaj"
7272
73−#: qml/Components/Dialogs.qml:154
73+#: qml/Components/Dialogs.qml:156
7474msgctxt "Button: Log out from the system"
7575msgid "Log Out"
7676msgstr "Odjavi se"
7777
78−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
78+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7979#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8080#: qml/Wizard/Pages/passcode-set.qml:32
8181msgid "Cancel"
8282msgstr "Otkaži"
8383
84−#: qml/Components/Dialogs.qml:173
84+#: qml/Components/Dialogs.qml:175
8585msgctxt "Title: Reboot dialog"
8686msgid "Reboot"
8787msgstr "Ponovo pokreni"
8888
89−#: qml/Components/Dialogs.qml:174
89+#: qml/Components/Dialogs.qml:176
9090msgid "Are you sure you want to reboot?"
9191msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
9292
93−#: qml/Components/Dialogs.qml:176
93+#: qml/Components/Dialogs.qml:178
9494msgid "No"
9595msgstr "Ne"
9696
97−#: qml/Components/Dialogs.qml:182
97+#: qml/Components/Dialogs.qml:184
9898msgid "Yes"
9999msgstr "Da"
100100
101−#: qml/Components/Dialogs.qml:197
101+#: qml/Components/Dialogs.qml:199
102102msgctxt "Title: Power off/Restart dialog"
103103msgid "Power"
104104msgstr "Napajanje"
105105
106−#: qml/Components/Dialogs.qml:198
106+#: qml/Components/Dialogs.qml:200
107107msgid ""
108108"Are you sure you would like\n"
109109"to power off?"
@@ -111,28 +111,198 @@ msgstr ""
111111"Da li ste sigurni da želite\n"
112112"isključiti?"
113113
114−#: qml/Components/Dialogs.qml:200
114+#: qml/Components/Dialogs.qml:202
115115msgctxt "Button: Power off the system"
116116msgid "Power off"
117117msgstr "Isključi"
118118
119−#: qml/Components/Dialogs.qml:209
119+#: qml/Components/Dialogs.qml:211
120120msgctxt "Button: Restart the system"
121121msgid "Restart"
122122msgstr "Restartuj"
123123
124−#: qml/Components/Lockscreen.qml:231
124+#: qml/Components/KeyboardShortcutsOverlay.qml:41
125+msgid "Keyboard Shortcuts"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:55
129+msgid "Unity 8"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:62
133+msgid "PrtScr"
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:67
137+msgid "Takes a screenshot."
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:75
141+msgid "Alt + PrtScr"
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:80
145+msgid "Takes a screenshot of a window."
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:88
149+msgid "Super + Space"
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:93
153+msgid "Switches to next keyboard layout."
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:101
157+msgid "Super + Shift + Space"
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:106
161+msgid "Switches to previous keyboard layout."
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:118
165+msgid "Launcher"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:125
169+msgid "Super (Hold)"
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:130
173+msgid "Opens the launcher, displays shortcuts."
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:138
177+msgid "Alt + F1"
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:143
181+msgid "Opens launcher keyboard navigation mode."
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:151
185+msgid "Super + Tab"
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:156
189+msgid "Switches applications via the launcher."
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:164
193+msgid "Super + 0 to 9"
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:169
197+msgid "Same as clicking on a launcher icon."
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:181
201+msgid "Scopes"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:188
205+msgid "Super (Tap)"
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:193
209+msgid "Opens the Scopes home."
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:209
213+msgid "Switching"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:216
217+msgid "Alt + Tab"
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:221
221+msgid "Switches between applications."
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:229
225+msgid "Super + W"
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:234
229+msgid "Opens the desktop spread."
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:242
233+msgid "Cursor Left or Right"
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:247
237+msgid "Moves the focus."
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:259
241+msgid "Windows"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:266
245+msgid "Ctrl + Super + D"
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:271
249+msgid "Minimizes all windows."
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:279
253+msgid "Ctrl + Super + Up"
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:284
257+msgid "Maximizes the current window."
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:292
261+msgid "Ctrl + Super + Down"
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:297
265+msgid "Minimizes or restores the current window."
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:305
269+msgid "Ctrl + Super + Left or Right"
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:310
273+msgid "Semi-maximizes the current window."
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:318
277+msgid "Alt + F4"
278+msgstr ""
279+
280+#: qml/Components/KeyboardShortcutsOverlay.qml:323
281+msgid "Closes the current window."
282+msgstr ""
283+
284+#: qml/Components/Lockscreen.qml:239
125285msgid "Return to Call"
126286msgstr "Povratak na Poziv"
127287
128−#: qml/Components/Lockscreen.qml:231
288+#: qml/Components/Lockscreen.qml:239
129289msgid "Emergency Call"
130290msgstr "Hitan Poziv"
131291
132−#: qml/Components/Lockscreen.qml:263
292+#: qml/Components/Lockscreen.qml:271
133293msgid "OK"
134294msgstr "U redu"
135295
296+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
297+#, qt-format
298+msgid "%1:%2:%3"
299+msgstr ""
300+
301+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
302+#, qt-format
303+msgid "%1:%2"
304+msgstr ""
305+
136306#: qml/Components/ModeSwitchWarningDialog.qml:32
137307msgid "Apps may have unsaved data:"
138308msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
@@ -161,6 +331,10 @@ msgstr "Ponovo poveži sada"
161331msgid "Close all"
162332msgstr "Zatvori sve"
163333
334+#: qml/Components/SharingPicker.qml:54
335+msgid "Preview Share Item"
336+msgstr "Pogledaj stavku koja se dijeli"
337+
164338#: qml/Dash/DashPageHeader.qml:333
165339msgctxt "Button: Open the Ubuntu Store"
166340msgid "Store"
@@ -192,15 +366,15 @@ msgstr ""
192366msgid "Reset"
193367msgstr ""
194368
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
369+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196370msgid "Show less"
197371msgstr ""
198372
199−#: qml/Dash/GenericScopeView.qml:579
373+#: qml/Dash/GenericScopeView.qml:580
200374msgid "Show all"
201375msgstr ""
202376
203−#: qml/Dash/GenericScopeView.qml:636
377+#: qml/Dash/GenericScopeView.qml:637
204378msgctxt "Label: Hint for dash search line edit"
205379msgid "Search"
206380msgstr "Pretraži"
@@ -234,10 +408,6 @@ msgstr "Ocijeni ovo"
234408msgid "Add a review"
235409msgstr "Dodaj recenziju"
236410
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr "Pogledaj stavku koja se dijeli"
240−
241411#: qml/Dash/PullToRefreshScopeStyle.qml:55
242412msgid "Pull to refresh…"
243413msgstr "Povući za osvježavanje..."
@@ -254,11 +424,11 @@ msgstr "Omogućiti podatke o lokaciji"
254424msgid "Manage"
255425msgstr "Upravljanje"
256426
257−#: qml/Dash/ScopesList.qml:101
427+#: qml/Dash/ScopesList.qml:102
258428msgid "Home"
259429msgstr "Početna"
260430
261−#: qml/Dash/ScopesList.qml:102
431+#: qml/Dash/ScopesList.qml:103
262432msgid "Also installed"
263433msgstr "Također instalirano"
264434
@@ -268,17 +438,29 @@ msgid ""
268438"touch pad to interact with the pointer."
269439msgstr ""
270440
271−#: qml/Greeter/CoverPage.qml:118
441+#: qml/Greeter/CoverPage.qml:127
272442msgid "Unlock"
273443msgstr "Otključaj"
274444
275−#: qml/Greeter/LoginList.qml:239
445+#: qml/Greeter/Greeter.qml:539
446+msgid "Try again"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:63
450+msgid "Passphrase"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:64
454+msgid "Passcode"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:259
276458msgid "Retry"
277459msgstr "Ponovi"
278460
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
281−msgstr "Kucnite za otključavanje"
461+#: qml/Greeter/LoginList.qml:260
462+msgid "Log In"
463+msgstr ""
282464
283465#: qml/Greeter/NarrowView.qml:54
284466msgid "Sorry, incorrect passphrase."
@@ -308,34 +490,34 @@ msgstr ""
308490"Ako je pristupni kod unesen netačno, vaš telefon će sprovesti reset na "
309491"fabričke postavke i svi osobni podaci će biti izbrisani."
310492
311−#: qml/Greeter/NarrowView.qml:116
493+#: qml/Greeter/NarrowView.qml:129
312494#, qt-format
313495msgid "Enter %1"
314496msgstr "Unesite %1"
315497
316−#: qml/Greeter/NarrowView.qml:117
498+#: qml/Greeter/NarrowView.qml:130
317499msgid "Enter passphrase"
318500msgstr "Unesite propusnu frazu"
319501
320−#: qml/Greeter/NarrowView.qml:118
502+#: qml/Greeter/NarrowView.qml:131
321503msgid "Enter passcode"
322504msgstr "Unesite pristupni kod"
323505
324−#: qml/Greeter/NarrowView.qml:119
506+#: qml/Greeter/NarrowView.qml:135
325507#, qt-format
326508msgid "Sorry, incorrect %1"
327509msgstr "Izvinite, netačno %1"
328510
329−#: qml/Greeter/NarrowView.qml:120
511+#: qml/Greeter/NarrowView.qml:136
330512msgid "Sorry, incorrect passphrase"
331513msgstr "Izvinite, netačna propusna fraza"
332514
333−#: qml/Greeter/NarrowView.qml:121
515+#: qml/Greeter/NarrowView.qml:137
334516msgctxt "passphrase"
335517msgid "Please re-enter"
336518msgstr "Molim ponovo unesite"
337519
338−#: qml/Greeter/NarrowView.qml:122
520+#: qml/Greeter/NarrowView.qml:138
339521msgid "Sorry, incorrect passcode"
340522msgstr "Izvinite, netačan pristupni kod"
341523
@@ -433,32 +615,12 @@ msgstr "Uzvrati poziv"
433615msgid "Drag using 3 fingers any application from one window to the other"
434616msgstr ""
435617
436−#: qml/Tutorial/TutorialBottom.qml:78
437−msgid "Swipe up to add a contact"
438−msgstr ""
439−
440−#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Swipe up for favorite calculations"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:82
445−msgid "Swipe up for recent calls"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Swipe up to create a message"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Swipe up to manage the app"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialLeftLong.qml:47
618+#: qml/Tutorial/TutorialLeftLong.qml:49
457619msgid "Long swipe from the left edge to open the Today scope"
458620msgstr ""
459621
460622#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
623+msgid "Short swipe from the left edge to open the launcher"
462624msgstr ""
463625
464626#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +628,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466628msgstr ""
467629
468630#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
631+msgid "Swipe from the right edge to view your open apps"
470632msgstr ""
471633
472634#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Swipe from the top right edge to open the notification bar"
474−msgstr ""
475−
476−#: qml/Tutorial/TutorialTop.qml:54
477−msgid "Swipe from the top edge to open the notification bar"
635+msgid "Swipe from the top edge to access notifications and quick settings"
478636msgstr ""
479637
480638#: qml/Wizard/Page.qml:54
@@ -486,15 +644,32 @@ msgstr "Nazad"
486644msgid "Language"
487645msgstr ""
488646
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
647+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
490648#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491649#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492650#: qml/Wizard/Pages/75-report-check.qml:84
493−#: qml/Wizard/Pages/passcode-desktop.qml:124
651+#: qml/Wizard/Pages/passcode-desktop.qml:141
494652#: qml/Wizard/Pages/password-set.qml:141
495653msgid "Next"
496654msgstr ""
497655
656+#: qml/Wizard/Pages/20-keyboard.qml:30
657+msgid "Select Keyboard"
658+msgstr ""
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:70
661+msgid "Keyboard language"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:92
665+msgid "Keyboard layout"
666+msgstr ""
667+
668+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
669+#: qml/Wizard/Pages/sim.qml:101
670+msgid "Skip"
671+msgstr "Preskočite"
672+
498673#: qml/Wizard/Pages/30-wifi.qml:29
499674msgid "Connect to Wi‑Fi"
500675msgstr "Povezati na Wi-Fi"
@@ -511,11 +686,6 @@ msgstr ""
511686msgid "No available Wi-Fi networks"
512687msgstr ""
513688
514−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515−#: qml/Wizard/Pages/sim.qml:101
516−msgid "Skip"
517−msgstr "Preskočite"
518−
519689#: qml/Wizard/Pages/40-location.qml:27
520690msgid "Location Services"
521691msgstr ""
@@ -599,6 +769,35 @@ msgstr ""
599769msgid "Privacy policy"
600770msgstr ""
601771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr ""
800+
602801#: qml/Wizard/Pages/80-finished.qml:89
603802msgid "Welcome to Ubuntu"
604803msgstr ""
@@ -642,7 +841,7 @@ msgid "Service Terms"
642841msgstr ""
643842
644843#: qml/Wizard/Pages/passcode-confirm.qml:43
645−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
646845msgid "Confirm passcode"
647846msgstr "Potvrdi pristupni kod"
648847
@@ -659,24 +858,24 @@ msgstr ""
659858msgid "Lock Screen Passcode"
660859msgstr ""
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
663862msgid "Enter 4 numbers to setup your passcode"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
667866#: qml/Wizard/Pages/passcode-set.qml:54
668867msgid "Choose passcode"
669868msgstr ""
670869
671−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
672871msgid "Passcode too short"
673872msgstr ""
674873
675−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
676875msgid "Passcodes match"
677876msgstr ""
678877
679−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
680879msgid "Passcodes do not match"
681880msgstr ""
682881
@@ -725,26 +924,30 @@ msgid "To proceed with no SIM tap Skip."
725924msgstr ""
726925
727926#: qml/Wizard/PasswordMeter.qml:87
728−msgid "Passwords match"
927+msgid "Password too short"
729928msgstr ""
730929
731930#: qml/Wizard/PasswordMeter.qml:89
931+msgid "Passwords match"
932+msgstr ""
933+
934+#: qml/Wizard/PasswordMeter.qml:91
732935msgid "Passwords do not match"
733936msgstr ""
734937
735−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
736939msgid "Strong password"
737940msgstr ""
738941
739−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
740943msgid "Fair password"
741944msgstr ""
742945
743−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
744947msgid "Weak password"
745948msgstr ""
746949
747−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
748951msgid "Very weak password"
749952msgstr ""
750953
@@ -773,6 +976,9 @@ msgstr ""
773976#~ msgid "See less"
774977#~ msgstr "Pogledati manje"
775978
979+#~ msgid "Tap to unlock"
980+#~ msgstr "Kucnite za otključavanje"
981+
776982#~ msgid "Please re-enter"
777983#~ msgstr "Molimo ponovo unesite"
778984
po/ca.po+400−145
@@ -7,105 +7,105 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
11−"PO-Revision-Date: 2015-07-04 09:48+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11+"PO-Revision-Date: 2016-09-02 14:00+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Contrasenya: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Enganxa la drecera"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Surt"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Desenganxa la drecera"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "Dispositiu bloquejat"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
4646"d'intents d'introducció de la contrasenya."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
5252"d'intents d'introducció del codi d'accés."
5353
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
5555#, qt-format
5656msgid "Please wait %1 minute and then try again…"
5757msgid_plural "Please wait %1 minutes and then try again…"
5858msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
5959msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
6060
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
6262msgctxt "Title: Lock/Log out dialog"
6363msgid "Log out"
6464msgstr "Surt"
6565
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6767msgid "Are you sure you want to log out?"
6868msgstr "Segur que voleu sortir?"
6969
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
7171msgctxt "Button: Lock the system"
7272msgid "Lock"
7373msgstr "Bloca"
7474
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7676msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Surt"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8181#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Cancel·la"
8585
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8787msgctxt "Title: Reboot dialog"
8888msgid "Reboot"
8989msgstr "Reinicia"
9090
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
9292msgid "Are you sure you want to reboot?"
9393msgstr "Segur que voleu reiniciar?"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "No"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Sí"
102102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104104msgctxt "Title: Power off/Restart dialog"
105105msgid "Power"
106106msgstr "Energia"
107107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109109msgid ""
110110"Are you sure you would like\n"
111111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113113"Segur que voleu\n"
114114"apagar?"
115115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117117msgctxt "Button: Power off the system"
118118msgid "Power off"
119119msgstr "Apaga"
120120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122122msgctxt "Button: Restart the system"
123123msgid "Restart"
124124msgstr "Reinicia"
125125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr "Dreceres de teclat"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr "Unity 8"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr "ImprPant"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr "Llançador"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr "Commuta entre aplicacions."
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr "Cursor dreta o esquerra"
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr "Mou el focus"
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr "Finestres"
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Return to Call"
128288msgstr "Torna a la trucada"
129289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131291msgid "Emergency Call"
132292msgstr "Trucada d'emergència"
133293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135295msgid "OK"
136296msgstr "D'acord"
137297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138308#: qml/Components/ModeSwitchWarningDialog.qml:32
139309msgid "Apps may have unsaved data:"
140310msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
@@ -144,6 +314,8 @@ msgctxt ""
144314"Re-dock means connect the device again to an external screen/mouse/keyboard"
145315msgid "Re-dock, save your work and close these apps to continue."
146316msgstr ""
317+"Torneu a acoblar, deseu la vostra feina i tanqueu aquestes aplicacions abans "
318+"de continuar."
147319
148320#: qml/Components/ModeSwitchWarningDialog.qml:63
149321msgid "Or force close now (unsaved data will be lost)."
@@ -161,6 +333,10 @@ msgstr "Torna a connectar"
161333msgid "Close all"
162334msgstr "Tanca-ho tot"
163335
336+#: qml/Components/SharingPicker.qml:54
337+msgid "Preview Share Item"
338+msgstr "Previsualitzeu l'element a compartir"
339+
164340#: qml/Dash/DashPageHeader.qml:333
165341msgctxt "Button: Open the Ubuntu Store"
166342msgid "Store"
@@ -186,21 +362,21 @@ msgstr "Afegeix als preferits"
186362
187363#: qml/Dash/FiltersPopover.qml:60
188364msgid "Refine your results"
189−msgstr ""
365+msgstr "Refineu els resultats"
190366
191367#: qml/Dash/FiltersPopover.qml:69
192368msgid "Reset"
193−msgstr ""
369+msgstr "Restableix"
194370
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
371+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196372msgid "Show less"
197373msgstr ""
198374
199−#: qml/Dash/GenericScopeView.qml:579
375+#: qml/Dash/GenericScopeView.qml:580
200376msgid "Show all"
201377msgstr ""
202378
203−#: qml/Dash/GenericScopeView.qml:636
379+#: qml/Dash/GenericScopeView.qml:637
204380msgctxt "Label: Hint for dash search line edit"
205381msgid "Search"
206382msgstr "Cerca"
@@ -234,10 +410,6 @@ msgstr "Puntueu-ho"
234410msgid "Add a review"
235411msgstr "Afegiu una ressenya"
236412
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr ""
240−
241413#: qml/Dash/PullToRefreshScopeStyle.qml:55
242414msgid "Pull to refresh…"
243415msgstr "Estireu per actualitzar..."
@@ -254,11 +426,11 @@ msgstr "Habilita les dades d'ubicació"
254426msgid "Manage"
255427msgstr "Gestiona"
256428
257−#: qml/Dash/ScopesList.qml:101
429+#: qml/Dash/ScopesList.qml:102
258430msgid "Home"
259431msgstr "Inici"
260432
261−#: qml/Dash/ScopesList.qml:102
433+#: qml/Dash/ScopesList.qml:103
262434msgid "Also installed"
263435msgstr "També instal·lat"
264436
@@ -267,18 +439,32 @@ msgid ""
267439"Your device is now connected to an external display. Use this screen as a "
268440"touch pad to interact with the pointer."
269441msgstr ""
442+"El vostre dispositiu està ara connectat a un monitor extern. Useu aquesta "
443+"pantalla com a ratolí tàctil per interaccionar amb el cursor."
270444
271−#: qml/Greeter/CoverPage.qml:118
445+#: qml/Greeter/CoverPage.qml:127
272446msgid "Unlock"
273447msgstr "Desbloca"
274448
275−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/Greeter.qml:539
450+msgid "Try again"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:63
454+msgid "Passphrase"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:64
458+msgid "Passcode"
459+msgstr ""
460+
461+#: qml/Greeter/LoginList.qml:259
276462msgid "Retry"
277463msgstr "Torna-ho a provar"
278464
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
281−msgstr "Feu un toc per desblocar"
465+#: qml/Greeter/LoginList.qml:260
466+msgid "Log In"
467+msgstr ""
282468
283469#: qml/Greeter/NarrowView.qml:54
284470msgid "Sorry, incorrect passphrase."
@@ -310,34 +496,34 @@ msgstr ""
310496"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
311497"personals."
312498
313−#: qml/Greeter/NarrowView.qml:116
499+#: qml/Greeter/NarrowView.qml:129
314500#, qt-format
315501msgid "Enter %1"
316502msgstr "Introduïu: %1"
317503
318−#: qml/Greeter/NarrowView.qml:117
504+#: qml/Greeter/NarrowView.qml:130
319505msgid "Enter passphrase"
320506msgstr "Introduïu la contrasenya"
321507
322−#: qml/Greeter/NarrowView.qml:118
508+#: qml/Greeter/NarrowView.qml:131
323509msgid "Enter passcode"
324510msgstr "Introduïu el codi d'accés"
325511
326−#: qml/Greeter/NarrowView.qml:119
512+#: qml/Greeter/NarrowView.qml:135
327513#, qt-format
328514msgid "Sorry, incorrect %1"
329515msgstr "Incorrecte (%1)"
330516
331−#: qml/Greeter/NarrowView.qml:120
517+#: qml/Greeter/NarrowView.qml:136
332518msgid "Sorry, incorrect passphrase"
333519msgstr "La contrasenya no és correcta"
334520
335−#: qml/Greeter/NarrowView.qml:121
521+#: qml/Greeter/NarrowView.qml:137
336522msgctxt "passphrase"
337523msgid "Please re-enter"
338524msgstr "Torneu-ho a introduir"
339525
340−#: qml/Greeter/NarrowView.qml:122
526+#: qml/Greeter/NarrowView.qml:138
341527msgid "Sorry, incorrect passcode"
342528msgstr "El codi d'accés no és correcte"
343529
@@ -431,33 +617,15 @@ msgstr "Retorna la trucada"
431617#: qml/Stages/SideStage.qml:76
432618msgid "Drag using 3 fingers any application from one window to the other"
433619msgstr ""
620+"Arrossegueu usant 3 dits qualsevol aplicació d'una finestra a una altra"
434621
435−#: qml/Tutorial/TutorialBottom.qml:78
436−msgid "Swipe up to add a contact"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:80
440−msgid "Swipe up for favorite calculations"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:82
444−msgid "Swipe up for recent calls"
445−msgstr ""
446−
447−#: qml/Tutorial/TutorialBottom.qml:84
448−msgid "Swipe up to create a message"
449−msgstr ""
450−
451−#: qml/Tutorial/TutorialBottom.qml:85
452−msgid "Swipe up to manage the app"
453−msgstr ""
454−
455−#: qml/Tutorial/TutorialLeftLong.qml:47
622+#: qml/Tutorial/TutorialLeftLong.qml:49
456623msgid "Long swipe from the left edge to open the Today scope"
457624msgstr ""
625+"Feu una lliscada llarga des de la vora esquerra per obrir l'àmbit Avui"
458626
459627#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "Swipe from the left edge to open the launcher"
628+msgid "Short swipe from the left edge to open the launcher"
461629msgstr ""
462630
463631#: qml/Tutorial/TutorialRight.qml:55
@@ -465,15 +633,11 @@ msgid "Push your mouse against the right edge to view your open apps"
465633msgstr ""
466634
467635#: qml/Tutorial/TutorialRight.qml:56
468−msgid "Short or long swipe from the right edge to view your open apps"
636+msgid "Swipe from the right edge to view your open apps"
469637msgstr ""
470638
471639#: qml/Tutorial/TutorialTop.qml:53
472−msgid "Swipe from the top right edge to open the notification bar"
473−msgstr ""
474−
475−#: qml/Tutorial/TutorialTop.qml:54
476−msgid "Swipe from the top edge to open the notification bar"
640+msgid "Swipe from the top edge to access notifications and quick settings"
477641msgstr ""
478642
479643#: qml/Wizard/Page.qml:54
@@ -483,132 +647,176 @@ msgstr "Enrere"
483647
484648#: qml/Wizard/Pages/10-welcome.qml:27
485649msgid "Language"
486−msgstr ""
650+msgstr "Llengua"
487651
488−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
652+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
489653#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
490654#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491655#: qml/Wizard/Pages/75-report-check.qml:84
492−#: qml/Wizard/Pages/passcode-desktop.qml:124
656+#: qml/Wizard/Pages/passcode-desktop.qml:141
493657#: qml/Wizard/Pages/password-set.qml:141
494658msgid "Next"
659+msgstr "Següent"
660+
661+#: qml/Wizard/Pages/20-keyboard.qml:30
662+msgid "Select Keyboard"
663+msgstr ""
664+
665+#: qml/Wizard/Pages/20-keyboard.qml:70
666+msgid "Keyboard language"
667+msgstr ""
668+
669+#: qml/Wizard/Pages/20-keyboard.qml:92
670+msgid "Keyboard layout"
495671msgstr ""
496672
673+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
674+#: qml/Wizard/Pages/sim.qml:101
675+msgid "Skip"
676+msgstr "Omet"
677+
497678#: qml/Wizard/Pages/30-wifi.qml:29
498679msgid "Connect to Wi‑Fi"
499680msgstr "Connecta't a la Wi-Fi"
500681
501682#: qml/Wizard/Pages/30-wifi.qml:130
502683msgid "Connected"
503−msgstr ""
684+msgstr "Connectat"
504685
505686#: qml/Wizard/Pages/30-wifi.qml:163
506687msgid "Available Wi-Fi networks"
507−msgstr ""
688+msgstr "Xarxes Wi-Fi disponibles"
508689
509690#: qml/Wizard/Pages/30-wifi.qml:164
510691msgid "No available Wi-Fi networks"
511−msgstr ""
512−
513−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514−#: qml/Wizard/Pages/sim.qml:101
515−msgid "Skip"
516−msgstr "Omet"
692+msgstr "No hi ha xarxes Wi-Fi disponibles"
517693
518694#: qml/Wizard/Pages/40-location.qml:27
519695msgid "Location Services"
520−msgstr ""
696+msgstr "Serveis d'ubicació"
521697
522698#: qml/Wizard/Pages/40-location.qml:83
523699msgid ""
524700"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525701"(recommended)"
526702msgstr ""
703+"Usa anònimament el GPS, punts d'accés Wi-Fi i la xarxa mòbil per detectar la "
704+"ubicació (recomanat)"
527705
528706#: qml/Wizard/Pages/40-location.qml:105
529707#, qt-format
530708msgid "By selecting this option you agree to the Nokia HERE %1."
531−msgstr ""
709+msgstr "Seleccionant aquesta opció esteu d'acord amb el Nokia HERE %1."
532710
533711#: qml/Wizard/Pages/40-location.qml:106
534712msgctxt "part of: Nokia HERE terms and conditions"
535713msgid "terms and conditions"
536−msgstr ""
714+msgstr "termes i condicions"
537715
538716#: qml/Wizard/Pages/40-location.qml:160
539717msgid "GPS only"
540−msgstr ""
718+msgstr "Sols GPS"
541719
542720#: qml/Wizard/Pages/40-location.qml:214
543721msgid "Don't use my location"
544−msgstr ""
722+msgstr "No usis la meva ubicació"
545723
546724#: qml/Wizard/Pages/40-location.qml:260
547725msgid "You can change it later in System Settings."
548−msgstr ""
726+msgstr "Podeu canviar-ho més tard a Paràmetres del sistema."
549727
550728#: qml/Wizard/Pages/50-timezone.qml:29
551729msgid "Time Zone"
552−msgstr ""
730+msgstr "Fus horari"
553731
554732#: qml/Wizard/Pages/50-timezone.qml:181
555733msgid "Enter your city"
556−msgstr ""
734+msgstr "Entreu la vostra ciutat"
557735
558736#: qml/Wizard/Pages/60-account.qml:24
559737msgid "Personalize Your Device"
560−msgstr ""
738+msgstr "Personalitzeu el vostre dispositiu"
561739
562740#: qml/Wizard/Pages/60-account.qml:48
563741msgid "Preferred Name"
564−msgstr ""
742+msgstr "Nom preferit"
565743
566744#: qml/Wizard/Pages/70-passwd-type.qml:39
567745msgid "Lock Screen"
568−msgstr ""
746+msgstr "Bloca la pantalla"
569747
570748#: qml/Wizard/Pages/70-passwd-type.qml:101
571749msgctxt "Label: Type of security method"
572750msgid "Create new password"
573−msgstr ""
751+msgstr "Crea una contrasenya nova"
574752
575753#: qml/Wizard/Pages/70-passwd-type.qml:103
576754msgctxt "Label: Type of security method"
577755msgid "Create passcode (numbers only)"
578−msgstr ""
756+msgstr "Creeu un codi d'accés (sols números)"
579757
580758#: qml/Wizard/Pages/70-passwd-type.qml:105
581759msgctxt "Label: Type of security method"
582760msgid "No lock code"
583−msgstr ""
761+msgstr "No hi ha codi de bloqueig"
584762
585763#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
586764msgid "Privacy Policy"
587−msgstr ""
765+msgstr "Política de privacitat"
588766
589767#: qml/Wizard/Pages/75-report-check.qml:26
590768msgid "Help Us Improve"
591−msgstr ""
769+msgstr "Ajudeu-nos a millorar"
592770
593771#: qml/Wizard/Pages/75-report-check.qml:59
594772msgid "Improve system performance by sending us crashes and error reports."
595773msgstr ""
774+"Milloreu el rendiment del sistema enviant-nos informes de fallades i errors."
596775
597776#: qml/Wizard/Pages/75-report-check.qml:60
598777msgid "Privacy policy"
778+msgstr "Política de privacitat"
779+
780+#: qml/Wizard/Pages/77-system-update.qml:28
781+msgid "Update Device"
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:55
785+msgid ""
786+"There is a system update available and ready to install. Afterwards, the "
787+"device will automatically restart."
788+msgstr ""
789+
790+#: qml/Wizard/Pages/77-system-update.qml:76
791+msgctxt "string identifying name of the update"
792+msgid "Ubuntu system"
793+msgstr ""
794+
795+#: qml/Wizard/Pages/77-system-update.qml:83
796+#, qt-format
797+msgctxt "version of the system update"
798+msgid "Version %1"
799+msgstr ""
800+
801+#: qml/Wizard/Pages/77-system-update.qml:102
802+msgid "This could take a few minutes..."
803+msgstr ""
804+
805+#: qml/Wizard/Pages/77-system-update.qml:116
806+msgid "Install and restart now"
599807msgstr ""
600808
601809#: qml/Wizard/Pages/80-finished.qml:89
602810msgid "Welcome to Ubuntu"
603−msgstr ""
811+msgstr "Us donem la benvinguda a l'Ubuntu"
604812
605813#: qml/Wizard/Pages/80-finished.qml:104
606814msgid "You are ready to use your device now"
607−msgstr ""
815+msgstr "Ara ja esteu a punt per usar el vostre dispositiu"
608816
609817#: qml/Wizard/Pages/80-finished.qml:124
610818msgid "Get Started"
611−msgstr ""
819+msgstr "Introducció"
612820
613821#: qml/Wizard/Pages/here-terms.qml:25
614822msgid "Terms & Conditions"
@@ -617,6 +825,7 @@ msgstr "Condicions generals"
617825#: qml/Wizard/Pages/here-terms.qml:69
618826msgid "Your device uses positioning technologies provided by HERE."
619827msgstr ""
828+"El vostre dispositiu usa tecnologies de posicionament proveïdes per HERE."
620829
621830#: qml/Wizard/Pages/here-terms.qml:81
622831msgid ""
@@ -624,92 +833,98 @@ msgid ""
624833"collects information about nearby cell towers and Wi-Fi hotspots around your "
625834"current location whenever your position is being found."
626835msgstr ""
836+"Per proveir-vos de serveis de posicionament i per millorar la seva qualitat, "
837+"HERE recull informació sobre torres de telefonia mòbil i punts d'accés Wi-Fi "
838+"al voltant de la vostra ubicació actual sempre que s'està buscant la vostra "
839+"posició."
627840
628841#: qml/Wizard/Pages/here-terms.qml:93
629842msgid ""
630843"The information collected is used to analyze the service and to improve the "
631844"use of service, but not to identify you personally."
632845msgstr ""
846+"La informació recollida s'usa per analitzar el servei i per millorar l'ús "
847+"del servei, però no per identificar-vos personalment."
633848
634849#: qml/Wizard/Pages/here-terms.qml:106
635850#, qt-format
636851msgid "By continuing, you agree to the HERE platform %1 and %2."
637−msgstr ""
852+msgstr "En continuar, esteu d'acord amb la plataforma HERE %1 i %2."
638853
639854#: qml/Wizard/Pages/here-terms.qml:107
640855msgid "Service Terms"
641−msgstr ""
856+msgstr "Termes del servei"
642857
643858#: qml/Wizard/Pages/passcode-confirm.qml:43
644−#: qml/Wizard/Pages/passcode-desktop.qml:80
859+#: qml/Wizard/Pages/passcode-desktop.qml:96
645860msgid "Confirm passcode"
646861msgstr "Confirmeu el codi d'accés"
647862
648863#: qml/Wizard/Pages/passcode-confirm.qml:45
649864msgid "Incorrect passcode."
650−msgstr ""
865+msgstr "Codi d'accés incorrecte."
651866
652867#: qml/Wizard/Pages/passcode-confirm.qml:45
653868msgctxt "Enter the passcode again"
654869msgid "Please re-enter."
655−msgstr ""
870+msgstr "Si us plau torneu a introduir-lo."
656871
657872#: qml/Wizard/Pages/passcode-desktop.qml:30
658873msgid "Lock Screen Passcode"
659−msgstr ""
874+msgstr "Codi d'accés al bloqueig de pantalla"
660875
661−#: qml/Wizard/Pages/passcode-desktop.qml:56
876+#: qml/Wizard/Pages/passcode-desktop.qml:60
662877msgid "Enter 4 numbers to setup your passcode"
663−msgstr ""
878+msgstr "Entreu 4 números per establir el codi d'accés"
664879
665−#: qml/Wizard/Pages/passcode-desktop.qml:65
880+#: qml/Wizard/Pages/passcode-desktop.qml:76
666881#: qml/Wizard/Pages/passcode-set.qml:54
667882msgid "Choose passcode"
668−msgstr ""
883+msgstr "Trieu el codi d'accés"
669884
670−#: qml/Wizard/Pages/passcode-desktop.qml:105
885+#: qml/Wizard/Pages/passcode-desktop.qml:126
671886msgid "Passcode too short"
672−msgstr ""
887+msgstr "El codi d'accés és massa curt"
673888
674−#: qml/Wizard/Pages/passcode-desktop.qml:107
889+#: qml/Wizard/Pages/passcode-desktop.qml:128
675890msgid "Passcodes match"
676−msgstr ""
891+msgstr "Els codis d'accés concorden"
677892
678−#: qml/Wizard/Pages/passcode-desktop.qml:109
893+#: qml/Wizard/Pages/passcode-desktop.qml:130
679894msgid "Passcodes do not match"
680−msgstr ""
895+msgstr "Els codis d'accés no concorden"
681896
682897#: qml/Wizard/Pages/passcode-set.qml:62
683898msgid "Passcode must be 4 characters long"
684−msgstr ""
899+msgstr "El codi d'accés ha de tenir una longitud de 4 caràcters"
685900
686901#: qml/Wizard/Pages/password-set.qml:30
687902msgid "Lock Screen Password"
688−msgstr ""
903+msgstr "Contrasenya de bloqueig de pantalla"
689904
690905#: qml/Wizard/Pages/password-set.qml:61
691906msgid "Enter at least 8 characters"
692−msgstr ""
907+msgstr "Entreu almenys 8 caràcters"
693908
694909#: qml/Wizard/Pages/password-set.qml:73
695910msgid "Choose password"
696−msgstr ""
911+msgstr "Escolliu la contrasenya"
697912
698913#: qml/Wizard/Pages/password-set.qml:103
699914msgid "Confirm password"
700−msgstr ""
915+msgstr "Confirmeu la contrasenya"
701916
702917#: qml/Wizard/Pages/sim.qml:27
703918msgid "No SIM card installed"
704−msgstr ""
919+msgstr "No hi cap SIM instal·lada"
705920
706921#: qml/Wizard/Pages/sim.qml:54
707922msgid "SIM card added"
708−msgstr ""
923+msgstr "S'ha afegit una targeta SIM"
709924
710925#: qml/Wizard/Pages/sim.qml:55
711926msgid "You must restart the device to access the mobile network."
712−msgstr ""
927+msgstr "Heu de reiniciar el dispositiu per accedir a la xarxa mòbil."
713928
714929#: qml/Wizard/Pages/sim.qml:59
715930msgid "Restart"
@@ -717,35 +932,39 @@ msgstr "Reinicia"
717932
718933#: qml/Wizard/Pages/sim.qml:78
719934msgid "You won’t be able to make calls or use text messaging without a SIM."
720−msgstr ""
935+msgstr "No podreu fer trucades o usar la missatgeria de text sense una SIM."
721936
722937#: qml/Wizard/Pages/sim.qml:90
723938msgid "To proceed with no SIM tap Skip."
724−msgstr ""
939+msgstr "Per procedir sense cap SIM toqueu Omet."
725940
726941#: qml/Wizard/PasswordMeter.qml:87
727−msgid "Passwords match"
942+msgid "Password too short"
728943msgstr ""
729944
730945#: qml/Wizard/PasswordMeter.qml:89
946+msgid "Passwords match"
947+msgstr "Les contrasenyes coincideixen"
948+
949+#: qml/Wizard/PasswordMeter.qml:91
731950msgid "Passwords do not match"
732−msgstr ""
951+msgstr "Les contrasenyes no coincideixen"
733952
734−#: qml/Wizard/PasswordMeter.qml:93
953+#: qml/Wizard/PasswordMeter.qml:95
735954msgid "Strong password"
736−msgstr ""
955+msgstr "La contrasenya és forta"
737956
738−#: qml/Wizard/PasswordMeter.qml:95
957+#: qml/Wizard/PasswordMeter.qml:97
739958msgid "Fair password"
740−msgstr ""
959+msgstr "La contrasenya és acceptable"
741960
742−#: qml/Wizard/PasswordMeter.qml:97
961+#: qml/Wizard/PasswordMeter.qml:99
743962msgid "Weak password"
744−msgstr ""
963+msgstr "La contrasenya és dèbil"
745964
746−#: qml/Wizard/PasswordMeter.qml:99
965+#: qml/Wizard/PasswordMeter.qml:101
747966msgid "Very weak password"
748−msgstr ""
967+msgstr "La contrasenya és molt dèbil"
749968
750969#~ msgid "Confirm"
751970#~ msgstr "Confirma"
@@ -978,6 +1197,9 @@ msgstr ""
9781197#~ msgid "Open special menus"
9791198#~ msgstr "Obre els menús especials"
9801199
1200+#~ msgid "Tap to unlock"
1201+#~ msgstr "Feu un toc per desblocar"
1202+
9811203#~ msgid "To view open apps"
9821204#~ msgstr "Per veure les aplicacions obertes"
9831205
@@ -1073,3 +1295,36 @@ msgstr ""
10731295
10741296#~ msgid "Call back"
10751297#~ msgstr "Retorna la trucada"
1298+
1299+#~ msgid "Swipe up for recent calls"
1300+#~ msgstr "Llisqueu cap amunt per a trucades recents"
1301+
1302+#~ msgid "Swipe up for favorite calculations"
1303+#~ msgstr "Llisqueu cap amunt per als càlculs favorits"
1304+
1305+#~ msgid "Swipe up to create a message"
1306+#~ msgstr "Llisqueu cap amunt per crear un missatge"
1307+
1308+#~ msgid "Swipe from the left edge to open the launcher"
1309+#~ msgstr "Llisqueu des de la vora esquerra per obrir el llançador"
1310+
1311+#~ msgid "Swipe from the top right edge to open the notification bar"
1312+#~ msgstr ""
1313+#~ "Llisqueu des de la vora superior dreta per obrir la barra de notificacions"
1314+
1315+#~ msgid "Swipe from the top edge to open the notification bar"
1316+#~ msgstr "Llisqueu des de la vora superior per obrir la barra de notificacions"
1317+
1318+#~ msgid "Hover your mouse on the right edge to view your open apps"
1319+#~ msgstr "Passeu el ratolí a la vora dreta per veure les aplicacions obertes"
1320+
1321+#~ msgid "Short or long swipe from the right edge to view your open apps"
1322+#~ msgstr ""
1323+#~ "Feu una lliscada llarga o curta des de la vora dreta per veure les "
1324+#~ "aplicacions obertes"
1325+
1326+#~ msgid "Swipe up to manage the app"
1327+#~ msgstr "Llisqueu cap amunt per gestionar l'aplicació"
1328+
1329+#~ msgid "Swipe up to add a contact"
1330+#~ msgstr "Llisqueu per afegir un contacte"
po/ca@valencia.po+296−93
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-02-22 15:22+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,97 +15,97 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:21+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:56+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Contrasenya: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Apega la drecera"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Desenganxa la drecera"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "Dispositiu bloquejat"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
4646"d'intents d'introducció de la contrasenya."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
5252"d'intents d'introducció del codi d'accés."
5353
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
5555#, qt-format
5656msgid "Please wait %1 minute and then try again…"
5757msgid_plural "Please wait %1 minutes and then try again…"
5858msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
5959msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
6060
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
6262msgctxt "Title: Lock/Log out dialog"
6363msgid "Log out"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6767msgid "Are you sure you want to log out?"
6868msgstr "Segur que voleu eixir?"
6969
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
7171msgctxt "Button: Lock the system"
7272msgid "Lock"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7676msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr ""
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8181#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Cancel·la"
8585
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8787msgctxt "Title: Reboot dialog"
8888msgid "Reboot"
8989msgstr ""
9090
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
9292msgid "Are you sure you want to reboot?"
9393msgstr "Segur que voleu reiniciar?"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "No"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Sí"
102102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104104msgctxt "Title: Power off/Restart dialog"
105105msgid "Power"
106106msgstr ""
107107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109109msgid ""
110110"Are you sure you would like\n"
111111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113113"Segur que voleu\n"
114114"apagar?"
115115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117117msgctxt "Button: Power off the system"
118118msgid "Power off"
119119msgstr ""
120120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122122msgctxt "Button: Restart the system"
123123msgid "Restart"
124124msgstr ""
125125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Return to Call"
128288msgstr "Torna a la cridada"
129289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131291msgid "Emergency Call"
132292msgstr "Cridada d'emergència"
133293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135295msgid "OK"
136296msgstr "D'acord"
137297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138308#: qml/Components/ModeSwitchWarningDialog.qml:32
139309msgid "Apps may have unsaved data:"
140310msgstr ""
@@ -161,6 +331,10 @@ msgstr ""
161331msgid "Close all"
162332msgstr ""
163333
334+#: qml/Components/SharingPicker.qml:54
335+msgid "Preview Share Item"
336+msgstr ""
337+
164338#: qml/Dash/DashPageHeader.qml:333
165339msgctxt "Button: Open the Ubuntu Store"
166340msgid "Store"
@@ -192,15 +366,15 @@ msgstr ""
192366msgid "Reset"
193367msgstr ""
194368
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
369+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196370msgid "Show less"
197371msgstr ""
198372
199−#: qml/Dash/GenericScopeView.qml:579
373+#: qml/Dash/GenericScopeView.qml:580
200374msgid "Show all"
201375msgstr ""
202376
203−#: qml/Dash/GenericScopeView.qml:636
377+#: qml/Dash/GenericScopeView.qml:637
204378msgctxt "Label: Hint for dash search line edit"
205379msgid "Search"
206380msgstr ""
@@ -234,10 +408,6 @@ msgstr "Puntueu-ho"
234408msgid "Add a review"
235409msgstr "Afegiu una ressenya"
236410
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr ""
240−
241411#: qml/Dash/PullToRefreshScopeStyle.qml:55
242412msgid "Pull to refresh…"
243413msgstr "Estireu per actualitzar..."
@@ -254,11 +424,11 @@ msgstr "Habilita les dades d'ubicació"
254424msgid "Manage"
255425msgstr "Gestiona"
256426
257−#: qml/Dash/ScopesList.qml:101
427+#: qml/Dash/ScopesList.qml:102
258428msgid "Home"
259429msgstr "Inici"
260430
261−#: qml/Dash/ScopesList.qml:102
431+#: qml/Dash/ScopesList.qml:103
262432msgid "Also installed"
263433msgstr "També instal·lat"
264434
@@ -268,16 +438,28 @@ msgid ""
268438"touch pad to interact with the pointer."
269439msgstr ""
270440
271−#: qml/Greeter/CoverPage.qml:118
441+#: qml/Greeter/CoverPage.qml:127
272442msgid "Unlock"
273443msgstr "Desbloca"
274444
275−#: qml/Greeter/LoginList.qml:239
445+#: qml/Greeter/Greeter.qml:539
446+msgid "Try again"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:63
450+msgid "Passphrase"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:64
454+msgid "Passcode"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:259
276458msgid "Retry"
277459msgstr ""
278460
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
461+#: qml/Greeter/LoginList.qml:260
462+msgid "Log In"
281463msgstr ""
282464
283465#: qml/Greeter/NarrowView.qml:54
@@ -310,34 +492,34 @@ msgstr ""
310492"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
311493"personals."
312494
313−#: qml/Greeter/NarrowView.qml:116
495+#: qml/Greeter/NarrowView.qml:129
314496#, qt-format
315497msgid "Enter %1"
316498msgstr "Introduïu: %1"
317499
318−#: qml/Greeter/NarrowView.qml:117
500+#: qml/Greeter/NarrowView.qml:130
319501msgid "Enter passphrase"
320502msgstr "Introduïu la contrasenya"
321503
322−#: qml/Greeter/NarrowView.qml:118
504+#: qml/Greeter/NarrowView.qml:131
323505msgid "Enter passcode"
324506msgstr "Introduïu el codi d'accés"
325507
326−#: qml/Greeter/NarrowView.qml:119
508+#: qml/Greeter/NarrowView.qml:135
327509#, qt-format
328510msgid "Sorry, incorrect %1"
329511msgstr "Incorrecte (%1)"
330512
331−#: qml/Greeter/NarrowView.qml:120
513+#: qml/Greeter/NarrowView.qml:136
332514msgid "Sorry, incorrect passphrase"
333515msgstr "La contrasenya no és correcta"
334516
335−#: qml/Greeter/NarrowView.qml:121
517+#: qml/Greeter/NarrowView.qml:137
336518msgctxt "passphrase"
337519msgid "Please re-enter"
338520msgstr ""
339521
340−#: qml/Greeter/NarrowView.qml:122
522+#: qml/Greeter/NarrowView.qml:138
341523msgid "Sorry, incorrect passcode"
342524msgstr "El codi d'accés no és correcte"
343525
@@ -432,32 +614,12 @@ msgstr ""
432614msgid "Drag using 3 fingers any application from one window to the other"
433615msgstr ""
434616
435−#: qml/Tutorial/TutorialBottom.qml:78
436−msgid "Swipe up to add a contact"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:80
440−msgid "Swipe up for favorite calculations"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:82
444−msgid "Swipe up for recent calls"
445−msgstr ""
446−
447−#: qml/Tutorial/TutorialBottom.qml:84
448−msgid "Swipe up to create a message"
449−msgstr ""
450−
451−#: qml/Tutorial/TutorialBottom.qml:85
452−msgid "Swipe up to manage the app"
453−msgstr ""
454−
455−#: qml/Tutorial/TutorialLeftLong.qml:47
617+#: qml/Tutorial/TutorialLeftLong.qml:49
456618msgid "Long swipe from the left edge to open the Today scope"
457619msgstr ""
458620
459621#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "Swipe from the left edge to open the launcher"
622+msgid "Short swipe from the left edge to open the launcher"
461623msgstr ""
462624
463625#: qml/Tutorial/TutorialRight.qml:55
@@ -465,15 +627,11 @@ msgid "Push your mouse against the right edge to view your open apps"
465627msgstr ""
466628
467629#: qml/Tutorial/TutorialRight.qml:56
468−msgid "Short or long swipe from the right edge to view your open apps"
630+msgid "Swipe from the right edge to view your open apps"
469631msgstr ""
470632
471633#: qml/Tutorial/TutorialTop.qml:53
472−msgid "Swipe from the top right edge to open the notification bar"
473−msgstr ""
474−
475−#: qml/Tutorial/TutorialTop.qml:54
476−msgid "Swipe from the top edge to open the notification bar"
634+msgid "Swipe from the top edge to access notifications and quick settings"
477635msgstr ""
478636
479637#: qml/Wizard/Page.qml:54
@@ -485,15 +643,32 @@ msgstr ""
485643msgid "Language"
486644msgstr ""
487645
488−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
646+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
489647#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
490648#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491649#: qml/Wizard/Pages/75-report-check.qml:84
492−#: qml/Wizard/Pages/passcode-desktop.qml:124
650+#: qml/Wizard/Pages/passcode-desktop.qml:141
493651#: qml/Wizard/Pages/password-set.qml:141
494652msgid "Next"
495653msgstr ""
496654
655+#: qml/Wizard/Pages/20-keyboard.qml:30
656+msgid "Select Keyboard"
657+msgstr ""
658+
659+#: qml/Wizard/Pages/20-keyboard.qml:70
660+msgid "Keyboard language"
661+msgstr ""
662+
663+#: qml/Wizard/Pages/20-keyboard.qml:92
664+msgid "Keyboard layout"
665+msgstr ""
666+
667+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
668+#: qml/Wizard/Pages/sim.qml:101
669+msgid "Skip"
670+msgstr "Omet"
671+
497672#: qml/Wizard/Pages/30-wifi.qml:29
498673msgid "Connect to Wi‑Fi"
499674msgstr "Connecta't a la Wi-Fi"
@@ -510,11 +685,6 @@ msgstr ""
510685msgid "No available Wi-Fi networks"
511686msgstr ""
512687
513−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514−#: qml/Wizard/Pages/sim.qml:101
515−msgid "Skip"
516−msgstr "Omet"
517−
518688#: qml/Wizard/Pages/40-location.qml:27
519689msgid "Location Services"
520690msgstr ""
@@ -598,6 +768,35 @@ msgstr ""
598768msgid "Privacy policy"
599769msgstr ""
600770
771+#: qml/Wizard/Pages/77-system-update.qml:28
772+msgid "Update Device"
773+msgstr ""
774+
775+#: qml/Wizard/Pages/77-system-update.qml:55
776+msgid ""
777+"There is a system update available and ready to install. Afterwards, the "
778+"device will automatically restart."
779+msgstr ""
780+
781+#: qml/Wizard/Pages/77-system-update.qml:76
782+msgctxt "string identifying name of the update"
783+msgid "Ubuntu system"
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:83
787+#, qt-format
788+msgctxt "version of the system update"
789+msgid "Version %1"
790+msgstr ""
791+
792+#: qml/Wizard/Pages/77-system-update.qml:102
793+msgid "This could take a few minutes..."
794+msgstr ""
795+
796+#: qml/Wizard/Pages/77-system-update.qml:116
797+msgid "Install and restart now"
798+msgstr ""
799+
601800#: qml/Wizard/Pages/80-finished.qml:89
602801msgid "Welcome to Ubuntu"
603802msgstr ""
@@ -641,7 +840,7 @@ msgid "Service Terms"
641840msgstr ""
642841
643842#: qml/Wizard/Pages/passcode-confirm.qml:43
644−#: qml/Wizard/Pages/passcode-desktop.qml:80
843+#: qml/Wizard/Pages/passcode-desktop.qml:96
645844msgid "Confirm passcode"
646845msgstr "Confirmeu el codi d'accés"
647846
@@ -658,24 +857,24 @@ msgstr ""
658857msgid "Lock Screen Passcode"
659858msgstr ""
660859
661−#: qml/Wizard/Pages/passcode-desktop.qml:56
860+#: qml/Wizard/Pages/passcode-desktop.qml:60
662861msgid "Enter 4 numbers to setup your passcode"
663862msgstr ""
664863
665−#: qml/Wizard/Pages/passcode-desktop.qml:65
864+#: qml/Wizard/Pages/passcode-desktop.qml:76
666865#: qml/Wizard/Pages/passcode-set.qml:54
667866msgid "Choose passcode"
668867msgstr ""
669868
670−#: qml/Wizard/Pages/passcode-desktop.qml:105
869+#: qml/Wizard/Pages/passcode-desktop.qml:126
671870msgid "Passcode too short"
672871msgstr ""
673872
674−#: qml/Wizard/Pages/passcode-desktop.qml:107
873+#: qml/Wizard/Pages/passcode-desktop.qml:128
675874msgid "Passcodes match"
676875msgstr ""
677876
678−#: qml/Wizard/Pages/passcode-desktop.qml:109
877+#: qml/Wizard/Pages/passcode-desktop.qml:130
679878msgid "Passcodes do not match"
680879msgstr ""
681880
@@ -724,26 +923,30 @@ msgid "To proceed with no SIM tap Skip."
724923msgstr ""
725924
726925#: qml/Wizard/PasswordMeter.qml:87
727−msgid "Passwords match"
926+msgid "Password too short"
728927msgstr ""
729928
730929#: qml/Wizard/PasswordMeter.qml:89
930+msgid "Passwords match"
931+msgstr ""
932+
933+#: qml/Wizard/PasswordMeter.qml:91
731934msgid "Passwords do not match"
732935msgstr ""
733936
734−#: qml/Wizard/PasswordMeter.qml:93
937+#: qml/Wizard/PasswordMeter.qml:95
735938msgid "Strong password"
736939msgstr ""
737940
738−#: qml/Wizard/PasswordMeter.qml:95
941+#: qml/Wizard/PasswordMeter.qml:97
739942msgid "Fair password"
740943msgstr ""
741944
742−#: qml/Wizard/PasswordMeter.qml:97
945+#: qml/Wizard/PasswordMeter.qml:99
743946msgid "Weak password"
744947msgstr ""
745948
746−#: qml/Wizard/PasswordMeter.qml:99
949+#: qml/Wizard/PasswordMeter.qml:101
747950msgid "Very weak password"
748951msgstr ""
749952
po/ce.po+296−93
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-02-15 04:01+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Chechen <ce@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr ""
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr ""
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr ""
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] ""
5555msgstr[1] ""
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr ""
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr ""
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr ""
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr ""
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr ""
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr ""
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr ""
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
108108msgstr ""
109109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111111msgctxt "Button: Power off the system"
112112msgid "Power off"
113113msgstr ""
114114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116116msgctxt "Button: Restart the system"
117117msgid "Restart"
118118msgstr ""
119119
120−#: qml/Components/Lockscreen.qml:231
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
280+#: qml/Components/Lockscreen.qml:239
121281msgid "Return to Call"
122282msgstr ""
123283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125285msgid "Emergency Call"
126286msgstr ""
127287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129289msgid "OK"
130290msgstr ""
131291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132302#: qml/Components/ModeSwitchWarningDialog.qml:32
133303msgid "Apps may have unsaved data:"
134304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155325msgid "Close all"
156326msgstr ""
157327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158332#: qml/Dash/DashPageHeader.qml:333
159333msgctxt "Button: Open the Ubuntu Store"
160334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186360msgid "Reset"
187361msgstr ""
188362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190364msgid "Show less"
191365msgstr ""
192366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194368msgid "Show all"
195369msgstr ""
196370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198372msgctxt "Label: Hint for dash search line edit"
199373msgid "Search"
200374msgstr ""
@@ -228,10 +402,6 @@ msgstr ""
228402msgid "Add a review"
229403msgstr ""
230404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236406msgid "Pull to refresh…"
237407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248418msgid "Manage"
249419msgstr ""
250420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252422msgid "Home"
253423msgstr ""
254424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256426msgid "Also installed"
257427msgstr ""
258428
@@ -262,16 +432,28 @@ msgid ""
262432"touch pad to interact with the pointer."
263433msgstr ""
264434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266436msgid "Unlock"
267437msgstr ""
268438
269−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270452msgid "Retry"
271453msgstr ""
272454
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
455+#: qml/Greeter/LoginList.qml:260
456+msgid "Log In"
275457msgstr ""
276458
277459#: qml/Greeter/NarrowView.qml:54
@@ -298,34 +480,34 @@ msgid ""
298480"and all personal data will be deleted."
299481msgstr ""
300482
301−#: qml/Greeter/NarrowView.qml:116
483+#: qml/Greeter/NarrowView.qml:129
302484#, qt-format
303485msgid "Enter %1"
304486msgstr ""
305487
306−#: qml/Greeter/NarrowView.qml:117
488+#: qml/Greeter/NarrowView.qml:130
307489msgid "Enter passphrase"
308490msgstr ""
309491
310−#: qml/Greeter/NarrowView.qml:118
492+#: qml/Greeter/NarrowView.qml:131
311493msgid "Enter passcode"
312494msgstr ""
313495
314−#: qml/Greeter/NarrowView.qml:119
496+#: qml/Greeter/NarrowView.qml:135
315497#, qt-format
316498msgid "Sorry, incorrect %1"
317499msgstr ""
318500
319−#: qml/Greeter/NarrowView.qml:120
501+#: qml/Greeter/NarrowView.qml:136
320502msgid "Sorry, incorrect passphrase"
321503msgstr ""
322504
323−#: qml/Greeter/NarrowView.qml:121
505+#: qml/Greeter/NarrowView.qml:137
324506msgctxt "passphrase"
325507msgid "Please re-enter"
326508msgstr ""
327509
328−#: qml/Greeter/NarrowView.qml:122
510+#: qml/Greeter/NarrowView.qml:138
329511msgid "Sorry, incorrect passcode"
330512msgstr ""
331513
@@ -420,32 +602,12 @@ msgstr ""
420602msgid "Drag using 3 fingers any application from one window to the other"
421603msgstr ""
422604
423−#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Swipe up to add a contact"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Swipe up for favorite calculations"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up for recent calls"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "Swipe up to create a message"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Swipe up to manage the app"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialLeftLong.qml:47
605+#: qml/Tutorial/TutorialLeftLong.qml:49
444606msgid "Long swipe from the left edge to open the Today scope"
445607msgstr ""
446608
447609#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
610+msgid "Short swipe from the left edge to open the launcher"
449611msgstr ""
450612
451613#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +615,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453615msgstr ""
454616
455617#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
618+msgid "Swipe from the right edge to view your open apps"
457619msgstr ""
458620
459621#: qml/Tutorial/TutorialTop.qml:53
460−msgid "Swipe from the top right edge to open the notification bar"
461−msgstr ""
462−
463−#: qml/Tutorial/TutorialTop.qml:54
464−msgid "Swipe from the top edge to open the notification bar"
622+msgid "Swipe from the top edge to access notifications and quick settings"
465623msgstr ""
466624
467625#: qml/Wizard/Page.qml:54
@@ -473,15 +631,32 @@ msgstr ""
473631msgid "Language"
474632msgstr ""
475633
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
634+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
477635#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478636#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479637#: qml/Wizard/Pages/75-report-check.qml:84
480−#: qml/Wizard/Pages/passcode-desktop.qml:124
638+#: qml/Wizard/Pages/passcode-desktop.qml:141
481639#: qml/Wizard/Pages/password-set.qml:141
482640msgid "Next"
483641msgstr ""
484642
643+#: qml/Wizard/Pages/20-keyboard.qml:30
644+msgid "Select Keyboard"
645+msgstr ""
646+
647+#: qml/Wizard/Pages/20-keyboard.qml:70
648+msgid "Keyboard language"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:92
652+msgid "Keyboard layout"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
656+#: qml/Wizard/Pages/sim.qml:101
657+msgid "Skip"
658+msgstr ""
659+
485660#: qml/Wizard/Pages/30-wifi.qml:29
486661msgid "Connect to Wi‑Fi"
487662msgstr ""
@@ -498,11 +673,6 @@ msgstr ""
498673msgid "No available Wi-Fi networks"
499674msgstr ""
500675
501−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502−#: qml/Wizard/Pages/sim.qml:101
503−msgid "Skip"
504−msgstr ""
505−
506676#: qml/Wizard/Pages/40-location.qml:27
507677msgid "Location Services"
508678msgstr ""
@@ -586,6 +756,35 @@ msgstr ""
586756msgid "Privacy policy"
587757msgstr ""
588758
759+#: qml/Wizard/Pages/77-system-update.qml:28
760+msgid "Update Device"
761+msgstr ""
762+
763+#: qml/Wizard/Pages/77-system-update.qml:55
764+msgid ""
765+"There is a system update available and ready to install. Afterwards, the "
766+"device will automatically restart."
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:76
770+msgctxt "string identifying name of the update"
771+msgid "Ubuntu system"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:83
775+#, qt-format
776+msgctxt "version of the system update"
777+msgid "Version %1"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:102
781+msgid "This could take a few minutes..."
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:116
785+msgid "Install and restart now"
786+msgstr ""
787+
589788#: qml/Wizard/Pages/80-finished.qml:89
590789msgid "Welcome to Ubuntu"
591790msgstr ""
@@ -629,7 +828,7 @@ msgid "Service Terms"
629828msgstr ""
630829
631830#: qml/Wizard/Pages/passcode-confirm.qml:43
632−#: qml/Wizard/Pages/passcode-desktop.qml:80
831+#: qml/Wizard/Pages/passcode-desktop.qml:96
633832msgid "Confirm passcode"
634833msgstr ""
635834
@@ -646,24 +845,24 @@ msgstr ""
646845msgid "Lock Screen Passcode"
647846msgstr ""
648847
649−#: qml/Wizard/Pages/passcode-desktop.qml:56
848+#: qml/Wizard/Pages/passcode-desktop.qml:60
650849msgid "Enter 4 numbers to setup your passcode"
651850msgstr ""
652851
653−#: qml/Wizard/Pages/passcode-desktop.qml:65
852+#: qml/Wizard/Pages/passcode-desktop.qml:76
654853#: qml/Wizard/Pages/passcode-set.qml:54
655854msgid "Choose passcode"
656855msgstr ""
657856
658−#: qml/Wizard/Pages/passcode-desktop.qml:105
857+#: qml/Wizard/Pages/passcode-desktop.qml:126
659858msgid "Passcode too short"
660859msgstr ""
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:107
861+#: qml/Wizard/Pages/passcode-desktop.qml:128
663862msgid "Passcodes match"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:109
865+#: qml/Wizard/Pages/passcode-desktop.qml:130
667866msgid "Passcodes do not match"
668867msgstr ""
669868
@@ -712,25 +911,29 @@ msgid "To proceed with no SIM tap Skip."
712911msgstr ""
713912
714913#: qml/Wizard/PasswordMeter.qml:87
715−msgid "Passwords match"
914+msgid "Password too short"
716915msgstr ""
717916
718917#: qml/Wizard/PasswordMeter.qml:89
918+msgid "Passwords match"
919+msgstr ""
920+
921+#: qml/Wizard/PasswordMeter.qml:91
719922msgid "Passwords do not match"
720923msgstr ""
721924
722−#: qml/Wizard/PasswordMeter.qml:93
925+#: qml/Wizard/PasswordMeter.qml:95
723926msgid "Strong password"
724927msgstr ""
725928
726−#: qml/Wizard/PasswordMeter.qml:95
929+#: qml/Wizard/PasswordMeter.qml:97
727930msgid "Fair password"
728931msgstr ""
729932
730−#: qml/Wizard/PasswordMeter.qml:97
933+#: qml/Wizard/PasswordMeter.qml:99
731934msgid "Weak password"
732935msgstr ""
733936
734−#: qml/Wizard/PasswordMeter.qml:99
937+#: qml/Wizard/PasswordMeter.qml:101
735938msgid "Very weak password"
736939msgstr ""
po/ckb.po+296−93
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2014-01-21 11:05+0000\n"
1212"Last-Translator: Aras <aras.noori@gmail.com>\n"
1313"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:21+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:56+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr ""
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr ""
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
4747msgid "You have been locked out due to too many failed passcode attempts."
4848msgstr ""
4949
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] ""
5555msgstr[1] ""
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr ""
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
7777#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr ""
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr ""
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr ""
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr ""
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr ""
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr ""
103103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105105msgid ""
106106"Are you sure you would like\n"
107107"to power off?"
108108msgstr ""
109109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111111msgctxt "Button: Power off the system"
112112msgid "Power off"
113113msgstr ""
114114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116116msgctxt "Button: Restart the system"
117117msgid "Restart"
118118msgstr ""
119119
120−#: qml/Components/Lockscreen.qml:231
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
280+#: qml/Components/Lockscreen.qml:239
121281msgid "Return to Call"
122282msgstr ""
123283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125285msgid "Emergency Call"
126286msgstr "هێڵی فریاگوزاری"
127287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129289msgid "OK"
130290msgstr ""
131291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132302#: qml/Components/ModeSwitchWarningDialog.qml:32
133303msgid "Apps may have unsaved data:"
134304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155325msgid "Close all"
156326msgstr ""
157327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158332#: qml/Dash/DashPageHeader.qml:333
159333msgctxt "Button: Open the Ubuntu Store"
160334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186360msgid "Reset"
187361msgstr ""
188362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190364msgid "Show less"
191365msgstr ""
192366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194368msgid "Show all"
195369msgstr ""
196370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198372msgctxt "Label: Hint for dash search line edit"
199373msgid "Search"
200374msgstr ""
@@ -228,10 +402,6 @@ msgstr "پلە دابنی بۆی"
228402msgid "Add a review"
229403msgstr "پێداچوونەوە زۆر بکە"
230404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236406msgid "Pull to refresh…"
237407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248418msgid "Manage"
249419msgstr ""
250420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252422msgid "Home"
253423msgstr ""
254424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256426msgid "Also installed"
257427msgstr ""
258428
@@ -262,16 +432,28 @@ msgid ""
262432"touch pad to interact with the pointer."
263433msgstr ""
264434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266436msgid "Unlock"
267437msgstr ""
268438
269−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270452msgid "Retry"
271453msgstr ""
272454
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
455+#: qml/Greeter/LoginList.qml:260
456+msgid "Log In"
275457msgstr ""
276458
277459#: qml/Greeter/NarrowView.qml:54
@@ -298,34 +480,34 @@ msgid ""
298480"and all personal data will be deleted."
299481msgstr ""
300482
301−#: qml/Greeter/NarrowView.qml:116
483+#: qml/Greeter/NarrowView.qml:129
302484#, qt-format
303485msgid "Enter %1"
304486msgstr ""
305487
306−#: qml/Greeter/NarrowView.qml:117
488+#: qml/Greeter/NarrowView.qml:130
307489msgid "Enter passphrase"
308490msgstr ""
309491
310−#: qml/Greeter/NarrowView.qml:118
492+#: qml/Greeter/NarrowView.qml:131
311493msgid "Enter passcode"
312494msgstr ""
313495
314−#: qml/Greeter/NarrowView.qml:119
496+#: qml/Greeter/NarrowView.qml:135
315497#, qt-format
316498msgid "Sorry, incorrect %1"
317499msgstr ""
318500
319−#: qml/Greeter/NarrowView.qml:120
501+#: qml/Greeter/NarrowView.qml:136
320502msgid "Sorry, incorrect passphrase"
321503msgstr ""
322504
323−#: qml/Greeter/NarrowView.qml:121
505+#: qml/Greeter/NarrowView.qml:137
324506msgctxt "passphrase"
325507msgid "Please re-enter"
326508msgstr ""
327509
328−#: qml/Greeter/NarrowView.qml:122
510+#: qml/Greeter/NarrowView.qml:138
329511msgid "Sorry, incorrect passcode"
330512msgstr ""
331513
@@ -420,32 +602,12 @@ msgstr ""
420602msgid "Drag using 3 fingers any application from one window to the other"
421603msgstr ""
422604
423−#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Swipe up to add a contact"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Swipe up for favorite calculations"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up for recent calls"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "Swipe up to create a message"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Swipe up to manage the app"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialLeftLong.qml:47
605+#: qml/Tutorial/TutorialLeftLong.qml:49
444606msgid "Long swipe from the left edge to open the Today scope"
445607msgstr ""
446608
447609#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
610+msgid "Short swipe from the left edge to open the launcher"
449611msgstr ""
450612
451613#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +615,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453615msgstr ""
454616
455617#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
618+msgid "Swipe from the right edge to view your open apps"
457619msgstr ""
458620
459621#: qml/Tutorial/TutorialTop.qml:53
460−msgid "Swipe from the top right edge to open the notification bar"
461−msgstr ""
462−
463−#: qml/Tutorial/TutorialTop.qml:54
464−msgid "Swipe from the top edge to open the notification bar"
622+msgid "Swipe from the top edge to access notifications and quick settings"
465623msgstr ""
466624
467625#: qml/Wizard/Page.qml:54
@@ -473,15 +631,32 @@ msgstr ""
473631msgid "Language"
474632msgstr ""
475633
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
634+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
477635#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478636#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479637#: qml/Wizard/Pages/75-report-check.qml:84
480−#: qml/Wizard/Pages/passcode-desktop.qml:124
638+#: qml/Wizard/Pages/passcode-desktop.qml:141
481639#: qml/Wizard/Pages/password-set.qml:141
482640msgid "Next"
483641msgstr ""
484642
643+#: qml/Wizard/Pages/20-keyboard.qml:30
644+msgid "Select Keyboard"
645+msgstr ""
646+
647+#: qml/Wizard/Pages/20-keyboard.qml:70
648+msgid "Keyboard language"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:92
652+msgid "Keyboard layout"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
656+#: qml/Wizard/Pages/sim.qml:101
657+msgid "Skip"
658+msgstr ""
659+
485660#: qml/Wizard/Pages/30-wifi.qml:29
486661msgid "Connect to Wi‑Fi"
487662msgstr ""
@@ -498,11 +673,6 @@ msgstr ""
498673msgid "No available Wi-Fi networks"
499674msgstr ""
500675
501−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502−#: qml/Wizard/Pages/sim.qml:101
503−msgid "Skip"
504−msgstr ""
505−
506676#: qml/Wizard/Pages/40-location.qml:27
507677msgid "Location Services"
508678msgstr ""
@@ -586,6 +756,35 @@ msgstr ""
586756msgid "Privacy policy"
587757msgstr ""
588758
759+#: qml/Wizard/Pages/77-system-update.qml:28
760+msgid "Update Device"
761+msgstr ""
762+
763+#: qml/Wizard/Pages/77-system-update.qml:55
764+msgid ""
765+"There is a system update available and ready to install. Afterwards, the "
766+"device will automatically restart."
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:76
770+msgctxt "string identifying name of the update"
771+msgid "Ubuntu system"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:83
775+#, qt-format
776+msgctxt "version of the system update"
777+msgid "Version %1"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:102
781+msgid "This could take a few minutes..."
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:116
785+msgid "Install and restart now"
786+msgstr ""
787+
589788#: qml/Wizard/Pages/80-finished.qml:89
590789msgid "Welcome to Ubuntu"
591790msgstr ""
@@ -629,7 +828,7 @@ msgid "Service Terms"
629828msgstr ""
630829
631830#: qml/Wizard/Pages/passcode-confirm.qml:43
632−#: qml/Wizard/Pages/passcode-desktop.qml:80
831+#: qml/Wizard/Pages/passcode-desktop.qml:96
633832msgid "Confirm passcode"
634833msgstr ""
635834
@@ -646,24 +845,24 @@ msgstr ""
646845msgid "Lock Screen Passcode"
647846msgstr ""
648847
649−#: qml/Wizard/Pages/passcode-desktop.qml:56
848+#: qml/Wizard/Pages/passcode-desktop.qml:60
650849msgid "Enter 4 numbers to setup your passcode"
651850msgstr ""
652851
653−#: qml/Wizard/Pages/passcode-desktop.qml:65
852+#: qml/Wizard/Pages/passcode-desktop.qml:76
654853#: qml/Wizard/Pages/passcode-set.qml:54
655854msgid "Choose passcode"
656855msgstr ""
657856
658−#: qml/Wizard/Pages/passcode-desktop.qml:105
857+#: qml/Wizard/Pages/passcode-desktop.qml:126
659858msgid "Passcode too short"
660859msgstr ""
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:107
861+#: qml/Wizard/Pages/passcode-desktop.qml:128
663862msgid "Passcodes match"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:109
865+#: qml/Wizard/Pages/passcode-desktop.qml:130
667866msgid "Passcodes do not match"
668867msgstr ""
669868
@@ -712,26 +911,30 @@ msgid "To proceed with no SIM tap Skip."
712911msgstr ""
713912
714913#: qml/Wizard/PasswordMeter.qml:87
715−msgid "Passwords match"
914+msgid "Password too short"
716915msgstr ""
717916
718917#: qml/Wizard/PasswordMeter.qml:89
918+msgid "Passwords match"
919+msgstr ""
920+
921+#: qml/Wizard/PasswordMeter.qml:91
719922msgid "Passwords do not match"
720923msgstr ""
721924
722−#: qml/Wizard/PasswordMeter.qml:93
925+#: qml/Wizard/PasswordMeter.qml:95
723926msgid "Strong password"
724927msgstr ""
725928
726−#: qml/Wizard/PasswordMeter.qml:95
929+#: qml/Wizard/PasswordMeter.qml:97
727930msgid "Fair password"
728931msgstr ""
729932
730−#: qml/Wizard/PasswordMeter.qml:97
933+#: qml/Wizard/PasswordMeter.qml:99
731934msgid "Weak password"
732935msgstr ""
733936
734−#: qml/Wizard/PasswordMeter.qml:99
937+#: qml/Wizard/PasswordMeter.qml:101
735938msgid "Very weak password"
736939msgstr ""
737940
po/co.po+341−100
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2016-05-24 10:40+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Corsican <co@li.org>\n"
@@ -15,97 +15,97 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Parolla d'ordine: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Fissà l'accurtatoghju"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Abbandunà"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Toglie l'accurtatoghju"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "Dispusitivu bluccatu"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545"Site stati bluccati per troppi tentativi fallati d'inserimentu di a frasa "
4646"d'ordine."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Site stati bluccati per troppi tentativi fallati d'inserimentu di u codice "
5252"d'accessu."
5353
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
5555#, qt-format
5656msgid "Please wait %1 minute and then try again…"
5757msgid_plural "Please wait %1 minutes and then try again…"
5858msgstr[0] "Aspettà %1 minutu è po turnà à pruvà…"
5959msgstr[1] "Aspettà %1 minuti è po turnà à pruvà…"
6060
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
6262msgctxt "Title: Lock/Log out dialog"
6363msgid "Log out"
6464msgstr "Escì"
6565
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6767msgid "Are you sure you want to log out?"
6868msgstr "Site sicuri di vulè escì?"
6969
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
7171msgctxt "Button: Lock the system"
7272msgid "Lock"
7373msgstr "Bluccà"
7474
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7676msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Escì"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8181#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Annullà"
8585
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8787msgctxt "Title: Reboot dialog"
8888msgid "Reboot"
8989msgstr "Turnà ad avvià"
9090
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
9292msgid "Are you sure you want to reboot?"
9393msgstr "Site sicuri di vulè turnà ad avvià?"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "Nò"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Iè"
102102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104104msgctxt "Title: Power off/Restart dialog"
105105msgid "Power"
106106msgstr "Alimentazione"
107107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109109msgid ""
110110"Are you sure you would like\n"
111111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113113"Site sicuri di vulè\n"
114114"spenghje?"
115115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117117msgctxt "Button: Power off the system"
118118msgid "Power off"
119119msgstr "Spenghje"
120120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122122msgctxt "Button: Restart the system"
123123msgid "Restart"
124124msgstr "Turnà ad avvià"
125125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Return to Call"
128288msgstr "Turnà à a Chjamata"
129289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131291msgid "Emergency Call"
132292msgstr "Chjamata d'emergenza"
133293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135295msgid "OK"
136296msgstr "OK"
137297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138308#: qml/Components/ModeSwitchWarningDialog.qml:32
139309msgid "Apps may have unsaved data:"
140310msgstr "E app puderebbenu avè dati micca salvati:"
@@ -163,6 +333,10 @@ msgstr "Turnà à cunnettesi avà!"
163333msgid "Close all"
164334msgstr "Chjode tuttu"
165335
336+#: qml/Components/SharingPicker.qml:54
337+msgid "Preview Share Item"
338+msgstr "Anteprima elementi da sparte"
339+
166340#: qml/Dash/DashPageHeader.qml:333
167341msgctxt "Button: Open the Ubuntu Store"
168342msgid "Store"
@@ -194,15 +368,15 @@ msgstr "Raffinà i risultati"
194368msgid "Reset"
195369msgstr "Re-inizializzà"
196370
197−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
371+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
198372msgid "Show less"
199373msgstr ""
200374
201−#: qml/Dash/GenericScopeView.qml:579
375+#: qml/Dash/GenericScopeView.qml:580
202376msgid "Show all"
203377msgstr ""
204378
205−#: qml/Dash/GenericScopeView.qml:636
379+#: qml/Dash/GenericScopeView.qml:637
206380msgctxt "Label: Hint for dash search line edit"
207381msgid "Search"
208382msgstr "Circà"
@@ -236,10 +410,6 @@ msgstr "Ghjudicà questu"
236410msgid "Add a review"
237411msgstr "Aghjustà una recensione"
238412
239−#: qml/Dash/Previews/PreviewSharing.qml:66
240−msgid "Preview Share Item"
241−msgstr ""
242−
243413#: qml/Dash/PullToRefreshScopeStyle.qml:55
244414msgid "Pull to refresh…"
245415msgstr "Tirà per rinnuvà..."
@@ -256,11 +426,11 @@ msgstr "Abilità i dati nant'à u locu"
256426msgid "Manage"
257427msgstr "Gestì"
258428
259−#: qml/Dash/ScopesList.qml:101
429+#: qml/Dash/ScopesList.qml:102
260430msgid "Home"
261431msgstr "Accolta"
262432
263−#: qml/Dash/ScopesList.qml:102
433+#: qml/Dash/ScopesList.qml:103
264434msgid "Also installed"
265435msgstr "Anu dinù installatu..."
266436
@@ -272,17 +442,29 @@ msgstr ""
272442"U vostru dispusitivu avà hè cunnessu à unu screnu esternu. Usà u screnu di "
273443"ssu dispusitivu cum'è un tappettu tattile per guvernà u puntatore."
274444
275−#: qml/Greeter/CoverPage.qml:118
445+#: qml/Greeter/CoverPage.qml:127
276446msgid "Unlock"
277447msgstr "Sbluccà"
278448
279−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/Greeter.qml:539
450+msgid "Try again"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:63
454+msgid "Passphrase"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:64
458+msgid "Passcode"
459+msgstr ""
460+
461+#: qml/Greeter/LoginList.qml:259
280462msgid "Retry"
281463msgstr "Turnà à pruvà"
282464
283−#: qml/Greeter/LoginList.qml:240
284−msgid "Tap to unlock"
285−msgstr "Tuccà per sbluccà"
465+#: qml/Greeter/LoginList.qml:260
466+msgid "Log In"
467+msgstr ""
286468
287469#: qml/Greeter/NarrowView.qml:54
288470msgid "Sorry, incorrect passphrase."
@@ -312,34 +494,34 @@ msgstr ""
312494"Si u codice d'accessu hè erratu, u telefunu serà reinizializatu, è tutti i "
313495"dati persunali serannu perduti."
314496
315−#: qml/Greeter/NarrowView.qml:116
497+#: qml/Greeter/NarrowView.qml:129
316498#, qt-format
317499msgid "Enter %1"
318500msgstr "Inserì %1"
319501
320−#: qml/Greeter/NarrowView.qml:117
502+#: qml/Greeter/NarrowView.qml:130
321503msgid "Enter passphrase"
322504msgstr "Inserì a frasa d'ordine"
323505
324−#: qml/Greeter/NarrowView.qml:118
506+#: qml/Greeter/NarrowView.qml:131
325507msgid "Enter passcode"
326508msgstr "Inserì u codice d'accessu"
327509
328−#: qml/Greeter/NarrowView.qml:119
510+#: qml/Greeter/NarrowView.qml:135
329511#, qt-format
330512msgid "Sorry, incorrect %1"
331513msgstr "Spiacenti, %1 micca currettu"
332514
333−#: qml/Greeter/NarrowView.qml:120
515+#: qml/Greeter/NarrowView.qml:136
334516msgid "Sorry, incorrect passphrase"
335517msgstr "Spiacenti, frasa d'ordine micca curretta"
336518
337−#: qml/Greeter/NarrowView.qml:121
519+#: qml/Greeter/NarrowView.qml:137
338520msgctxt "passphrase"
339521msgid "Please re-enter"
340522msgstr "Ripete l'inserimentu"
341523
342−#: qml/Greeter/NarrowView.qml:122
524+#: qml/Greeter/NarrowView.qml:138
343525msgid "Sorry, incorrect passcode"
344526msgstr "Spiacenti, codice d'accessu micca currettu"
345527
@@ -435,50 +617,25 @@ msgid "Drag using 3 fingers any application from one window to the other"
435617msgstr ""
436618"Trascinà cù 3 dite qualichissia applicazione da una finestra à un'antra"
437619
438−#: qml/Tutorial/TutorialBottom.qml:78
439−msgid "Swipe up to add a contact"
440−msgstr "Scorre versu l'altu per aghjustà un cuntattu"
441−
442−#: qml/Tutorial/TutorialBottom.qml:80
443−msgid "Swipe up for favorite calculations"
444−msgstr "Scorre versu l'altu pè mustrà i calculi favuriti"
445−
446−#: qml/Tutorial/TutorialBottom.qml:82
447−msgid "Swipe up for recent calls"
448−msgstr "Scorre versu l'altu pè e chjamate recenti"
449−
450−#: qml/Tutorial/TutorialBottom.qml:84
451−msgid "Swipe up to create a message"
452−msgstr "Scorre versu l'altu per creà un messaggiu"
453−
454−#: qml/Tutorial/TutorialBottom.qml:85
455−msgid "Swipe up to manage the app"
456−msgstr "Scorre versu l'altu per gestì l'app"
457−
458−#: qml/Tutorial/TutorialLeftLong.qml:47
620+#: qml/Tutorial/TutorialLeftLong.qml:49
459621msgid "Long swipe from the left edge to open the Today scope"
460622msgstr "Scorre longu da mancina versu diritta per aprì u pannellu Oghje"
461623
462624#: qml/Tutorial/TutorialLeft.qml:47
463−msgid "Swipe from the left edge to open the launcher"
464−msgstr "Scorre da mancina versu diritta per aprì u launcher"
625+msgid "Short swipe from the left edge to open the launcher"
626+msgstr ""
465627
466628#: qml/Tutorial/TutorialRight.qml:55
467629msgid "Push your mouse against the right edge to view your open apps"
468630msgstr ""
469631
470632#: qml/Tutorial/TutorialRight.qml:56
471−msgid "Short or long swipe from the right edge to view your open apps"
633+msgid "Swipe from the right edge to view your open apps"
472634msgstr ""
473−"Scorre cortu o longu da diritta versu mancina per vede e applicazioni aperte"
474635
475636#: qml/Tutorial/TutorialTop.qml:53
476−msgid "Swipe from the top right edge to open the notification bar"
477−msgstr "Scorre da l'altu à diritta per aprì a barra di e nutificazione"
478−
479−#: qml/Tutorial/TutorialTop.qml:54
480−msgid "Swipe from the top edge to open the notification bar"
481−msgstr "Scorre da l'altu per aprì a barra di e nutificazione"
637+msgid "Swipe from the top edge to access notifications and quick settings"
638+msgstr ""
482639
483640#: qml/Wizard/Page.qml:54
484641msgctxt "Button: Go back one page in the Wizard"
@@ -489,15 +646,32 @@ msgstr "Riturnà"
489646msgid "Language"
490647msgstr "Lingua"
491648
492−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
649+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
493650#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
494651#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
495652#: qml/Wizard/Pages/75-report-check.qml:84
496−#: qml/Wizard/Pages/passcode-desktop.qml:124
653+#: qml/Wizard/Pages/passcode-desktop.qml:141
497654#: qml/Wizard/Pages/password-set.qml:141
498655msgid "Next"
499656msgstr "Prossimu"
500657
658+#: qml/Wizard/Pages/20-keyboard.qml:30
659+msgid "Select Keyboard"
660+msgstr ""
661+
662+#: qml/Wizard/Pages/20-keyboard.qml:70
663+msgid "Keyboard language"
664+msgstr ""
665+
666+#: qml/Wizard/Pages/20-keyboard.qml:92
667+msgid "Keyboard layout"
668+msgstr ""
669+
670+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
671+#: qml/Wizard/Pages/sim.qml:101
672+msgid "Skip"
673+msgstr "Ignurà"
674+
501675#: qml/Wizard/Pages/30-wifi.qml:29
502676msgid "Connect to Wi‑Fi"
503677msgstr "Cunnettesi à u Wi-Fi"
@@ -514,11 +688,6 @@ msgstr "Rete Wi-Fi dispunibili"
514688msgid "No available Wi-Fi networks"
515689msgstr "Nisuna reta Wi-Fi hè dispunibile"
516690
517−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
518−#: qml/Wizard/Pages/sim.qml:101
519−msgid "Skip"
520−msgstr "Ignurà"
521−
522691#: qml/Wizard/Pages/40-location.qml:27
523692msgid "Location Services"
524693msgstr "Servizi di lucalizazione"
@@ -528,11 +697,13 @@ msgid ""
528697"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
529698"(recommended)"
530699msgstr ""
700+"Usà di manera anonima u GPS, i punti d'accessu Wi-Fi, e reti mobili, per "
701+"stabilisce à pusizione (segeritu)"
531702
532703#: qml/Wizard/Pages/40-location.qml:105
533704#, qt-format
534705msgid "By selecting this option you agree to the Nokia HERE %1."
535−msgstr ""
706+msgstr "Selezziunendu issa ozzione s'accettanu i %1 di Nokia HERE."
536707
537708#: qml/Wizard/Pages/40-location.qml:106
538709msgctxt "part of: Nokia HERE terms and conditions"
@@ -597,11 +768,42 @@ msgstr "Aiutaci à migliurà"
597768#: qml/Wizard/Pages/75-report-check.qml:59
598769msgid "Improve system performance by sending us crashes and error reports."
599770msgstr ""
771+"Migliurà l'efficienza di u sistema mandenduci nutificazioni d'errori è "
772+"blocchi impurtanti."
600773
601774#: qml/Wizard/Pages/75-report-check.qml:60
602775msgid "Privacy policy"
603776msgstr "Pulitica di Riservatezza"
604777
778+#: qml/Wizard/Pages/77-system-update.qml:28
779+msgid "Update Device"
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:55
783+msgid ""
784+"There is a system update available and ready to install. Afterwards, the "
785+"device will automatically restart."
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:76
789+msgctxt "string identifying name of the update"
790+msgid "Ubuntu system"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:83
794+#, qt-format
795+msgctxt "version of the system update"
796+msgid "Version %1"
797+msgstr ""
798+
799+#: qml/Wizard/Pages/77-system-update.qml:102
800+msgid "This could take a few minutes..."
801+msgstr ""
802+
803+#: qml/Wizard/Pages/77-system-update.qml:116
804+msgid "Install and restart now"
805+msgstr ""
806+
605807#: qml/Wizard/Pages/80-finished.qml:89
606808msgid "Welcome to Ubuntu"
607809msgstr "Benvenuti in Ubuntu"
@@ -620,7 +822,7 @@ msgstr "Termini & Cundizioni"
620822
621823#: qml/Wizard/Pages/here-terms.qml:69
622824msgid "Your device uses positioning technologies provided by HERE."
623−msgstr ""
825+msgstr "U dispusitivu utliza tecnulugie di pusiziunamentu furnite da HERE."
624826
625827#: qml/Wizard/Pages/here-terms.qml:81
626828msgid ""
@@ -628,6 +830,9 @@ msgid ""
628830"collects information about nearby cell towers and Wi-Fi hotspots around your "
629831"current location whenever your position is being found."
630832msgstr ""
833+"Per furnì servizii di pusiziunamentu è migliuranne a qualità, ogni volta chì "
834+"a pusizione hè truvata, HERE culleziona e infurmazione nant'à i punti "
835+"d'accessu Wi-Fi è i repetitori di telefunia mobile ind'u circondu."
631836
632837#: qml/Wizard/Pages/here-terms.qml:93
633838msgid ""
@@ -647,7 +852,7 @@ msgid "Service Terms"
647852msgstr "Termini di u serviziu"
648853
649854#: qml/Wizard/Pages/passcode-confirm.qml:43
650−#: qml/Wizard/Pages/passcode-desktop.qml:80
855+#: qml/Wizard/Pages/passcode-desktop.qml:96
651856msgid "Confirm passcode"
652857msgstr "Cunfirmà u codice d'accessu"
653858
@@ -664,24 +869,24 @@ msgstr "Ripete l'inserimentu."
664869msgid "Lock Screen Passcode"
665870msgstr "Codice bloccu screnu"
666871
667−#: qml/Wizard/Pages/passcode-desktop.qml:56
872+#: qml/Wizard/Pages/passcode-desktop.qml:60
668873msgid "Enter 4 numbers to setup your passcode"
669874msgstr "Inserì 4 numeri per creà u vostru codice d'accessu"
670875
671−#: qml/Wizard/Pages/passcode-desktop.qml:65
876+#: qml/Wizard/Pages/passcode-desktop.qml:76
672877#: qml/Wizard/Pages/passcode-set.qml:54
673878msgid "Choose passcode"
674879msgstr "Sceglie u codice d'accessu"
675880
676−#: qml/Wizard/Pages/passcode-desktop.qml:105
881+#: qml/Wizard/Pages/passcode-desktop.qml:126
677882msgid "Passcode too short"
678883msgstr "Codice d'accessu troppu cortu"
679884
680−#: qml/Wizard/Pages/passcode-desktop.qml:107
885+#: qml/Wizard/Pages/passcode-desktop.qml:128
681886msgid "Passcodes match"
682887msgstr "I codici currispondenu."
683888
684−#: qml/Wizard/Pages/passcode-desktop.qml:109
889+#: qml/Wizard/Pages/passcode-desktop.qml:130
685890msgid "Passcodes do not match"
686891msgstr "I codici ùn currispondenu micca."
687892
@@ -724,41 +929,77 @@ msgstr "Turnà ad avvià"
724929#: qml/Wizard/Pages/sim.qml:78
725930msgid "You won’t be able to make calls or use text messaging without a SIM."
726931msgstr ""
932+"Senza una carta SIM ùn hè micca pussibile di chjamà o mandà messaggi SMS."
727933
728934#: qml/Wizard/Pages/sim.qml:90
729935msgid "To proceed with no SIM tap Skip."
730−msgstr ""
936+msgstr "Per prucede senza una carta SIM tuccà Saltà"
731937
732938#: qml/Wizard/PasswordMeter.qml:87
733−msgid "Passwords match"
939+msgid "Password too short"
734940msgstr ""
735941
736942#: qml/Wizard/PasswordMeter.qml:89
943+msgid "Passwords match"
944+msgstr "E parolle d'ordine sò l'istesse"
945+
946+#: qml/Wizard/PasswordMeter.qml:91
737947msgid "Passwords do not match"
738948msgstr "E parolle d'ordine ùn coincidunu micca"
739949
740−#: qml/Wizard/PasswordMeter.qml:93
950+#: qml/Wizard/PasswordMeter.qml:95
741951msgid "Strong password"
742952msgstr "Parolla d'ordine forte"
743953
744−#: qml/Wizard/PasswordMeter.qml:95
954+#: qml/Wizard/PasswordMeter.qml:97
745955msgid "Fair password"
746956msgstr "Parolla d'ordine media"
747957
748−#: qml/Wizard/PasswordMeter.qml:97
958+#: qml/Wizard/PasswordMeter.qml:99
749959msgid "Weak password"
750960msgstr "Parolla d'ordine debule"
751961
752−#: qml/Wizard/PasswordMeter.qml:99
962+#: qml/Wizard/PasswordMeter.qml:101
753963msgid "Very weak password"
754964msgstr "Parolla d'ordine moltu debule"
755965
756966#~ msgid "See all"
757967#~ msgstr "Vede tutti"
758968
969+#~ msgid "Tap to unlock"
970+#~ msgstr "Tuccà per sbluccà"
971+
759972#~ msgid "See less"
760973#~ msgstr "Vede menu"
761974
975+#~ msgid "Swipe from the left edge to open the launcher"
976+#~ msgstr "Scorre da mancina versu diritta per aprì u launcher"
977+
978+#~ msgid "Swipe up to add a contact"
979+#~ msgstr "Scorre versu l'altu per aghjustà un cuntattu"
980+
981+#~ msgid "Swipe up for recent calls"
982+#~ msgstr "Scorre versu l'altu pè e chjamate recenti"
983+
984+#~ msgid "Swipe up for favorite calculations"
985+#~ msgstr "Scorre versu l'altu pè mustrà i calculi favuriti"
986+
987+#~ msgid "Swipe up to manage the app"
988+#~ msgstr "Scorre versu l'altu per gestì l'app"
989+
990+#~ msgid "Swipe up to create a message"
991+#~ msgstr "Scorre versu l'altu per creà un messaggiu"
992+
993+#~ msgid "Short or long swipe from the right edge to view your open apps"
994+#~ msgstr ""
995+#~ "Scorre cortu o longu da diritta versu mancina per vede e applicazioni aperte"
996+
997+#~ msgid "Swipe from the top right edge to open the notification bar"
998+#~ msgstr "Scorre da l'altu à diritta per aprì a barra di e nutificazione"
999+
1000+#~ msgid "Swipe from the top edge to open the notification bar"
1001+#~ msgstr "Scorre da l'altu per aprì a barra di e nutificazione"
1002+
7621003#~ msgid "Hover your mouse on the right edge to view your open apps"
7631004#~ msgstr ""
7641005#~ "Passà u puntatore di u topu nant'à u bordu destru per vede e app aperte"
po/cs.po+300−94
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-07-07 10:44+0000\n"
1212"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
@@ -15,42 +15,42 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020"Language: cs\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Heslo: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
2828msgid "Pin shortcut"
2929msgstr "Připíchnout zkratku"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
3232msgid "Quit"
3333msgstr ""
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
3636msgid "Unpin shortcut"
3737msgstr "Odpíchnout zkratku"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
4040msgid "Device Locked"
4141msgstr "Zařízení uzamčeno"
4242
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
4444msgid "You have been locked out due to too many failed passphrase attempts."
4545msgstr ""
4646"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
5252
53−#: qml/Components/DelayedLockscreen.qml:74
53+#: qml/Components/DelayedLockscreen.qml:75
5454#, qt-format
5555msgid "Please wait %1 minute and then try again…"
5656msgid_plural "Please wait %1 minutes and then try again…"
@@ -58,54 +58,54 @@ msgstr[0] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
5858msgstr[1] "Počkejte, prosím, %1 minuty a poté to zkuste znovu..."
5959msgstr[2] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
6060
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
6262msgctxt "Title: Lock/Log out dialog"
6363msgid "Log out"
6464msgstr "Odhlásit se"
6565
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6767msgid "Are you sure you want to log out?"
6868msgstr "Jste si jistí, že se chcete odhlásit?"
6969
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
7171msgctxt "Button: Lock the system"
7272msgid "Lock"
7373msgstr "Uzamknout"
7474
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7676msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Odhlásit"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8181#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Zrušit"
8585
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8787msgctxt "Title: Reboot dialog"
8888msgid "Reboot"
8989msgstr "Restartovat"
9090
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
9292msgid "Are you sure you want to reboot?"
9393msgstr "Jste si jistí, že chcete zařízení restartovat?"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "Ne"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Ano"
102102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104104msgctxt "Title: Power off/Restart dialog"
105105msgid "Power"
106106msgstr "Vypnutí"
107107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109109msgid ""
110110"Are you sure you would like\n"
111111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113113"Jste si jistí, že chcete\n"
114114"telefon vypnout?"
115115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117117msgctxt "Button: Power off the system"
118118msgid "Power off"
119119msgstr "Vypnutí"
120120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122122msgctxt "Button: Restart the system"
123123msgid "Restart"
124124msgstr "Reboot"
125125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Return to Call"
128288msgstr "Vrátit se k hovoru"
129289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131291msgid "Emergency Call"
132292msgstr "Tísňové volání"
133293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135295msgid "OK"
136296msgstr "OK"
137297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138308#: qml/Components/ModeSwitchWarningDialog.qml:32
139309msgid "Apps may have unsaved data:"
140310msgstr ""
@@ -161,6 +331,10 @@ msgstr ""
161331msgid "Close all"
162332msgstr ""
163333
334+#: qml/Components/SharingPicker.qml:54
335+msgid "Preview Share Item"
336+msgstr ""
337+
164338#: qml/Dash/DashPageHeader.qml:333
165339msgctxt "Button: Open the Ubuntu Store"
166340msgid "Store"
@@ -192,15 +366,15 @@ msgstr ""
192366msgid "Reset"
193367msgstr ""
194368
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
369+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196370msgid "Show less"
197371msgstr ""
198372
199−#: qml/Dash/GenericScopeView.qml:579
373+#: qml/Dash/GenericScopeView.qml:580
200374msgid "Show all"
201375msgstr ""
202376
203−#: qml/Dash/GenericScopeView.qml:636
377+#: qml/Dash/GenericScopeView.qml:637
204378msgctxt "Label: Hint for dash search line edit"
205379msgid "Search"
206380msgstr "Hledat"
@@ -234,10 +408,6 @@ msgstr "Ohodnoťte to"
234408msgid "Add a review"
235409msgstr "Přidat recenzi"
236410
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr ""
240−
241411#: qml/Dash/PullToRefreshScopeStyle.qml:55
242412msgid "Pull to refresh…"
243413msgstr "Vytáhněte pro obnovení..."
@@ -254,11 +424,11 @@ msgstr "Povolit údaje umístění"
254424msgid "Manage"
255425msgstr "Spravovat"
256426
257−#: qml/Dash/ScopesList.qml:101
427+#: qml/Dash/ScopesList.qml:102
258428msgid "Home"
259429msgstr "Domů"
260430
261−#: qml/Dash/ScopesList.qml:102
431+#: qml/Dash/ScopesList.qml:103
262432msgid "Also installed"
263433msgstr "Také nainstalováno"
264434
@@ -268,17 +438,29 @@ msgid ""
268438"touch pad to interact with the pointer."
269439msgstr ""
270440
271−#: qml/Greeter/CoverPage.qml:118
441+#: qml/Greeter/CoverPage.qml:127
272442msgid "Unlock"
273443msgstr "Odemknout"
274444
275−#: qml/Greeter/LoginList.qml:239
445+#: qml/Greeter/Greeter.qml:539
446+msgid "Try again"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:63
450+msgid "Passphrase"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:64
454+msgid "Passcode"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:259
276458msgid "Retry"
277459msgstr "Znovu"
278460
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
281−msgstr "Klepnout pro odemčení"
461+#: qml/Greeter/LoginList.qml:260
462+msgid "Log In"
463+msgstr ""
282464
283465#: qml/Greeter/NarrowView.qml:54
284466msgid "Sorry, incorrect passphrase."
@@ -308,34 +490,34 @@ msgstr ""
308490"Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
309491"nastavení a všechna osobní data budou smazána."
310492
311−#: qml/Greeter/NarrowView.qml:116
493+#: qml/Greeter/NarrowView.qml:129
312494#, qt-format
313495msgid "Enter %1"
314496msgstr "Vložte %1"
315497
316−#: qml/Greeter/NarrowView.qml:117
498+#: qml/Greeter/NarrowView.qml:130
317499msgid "Enter passphrase"
318500msgstr "Vložte heslo"
319501
320−#: qml/Greeter/NarrowView.qml:118
502+#: qml/Greeter/NarrowView.qml:131
321503msgid "Enter passcode"
322504msgstr "Vložte heslo"
323505
324−#: qml/Greeter/NarrowView.qml:119
506+#: qml/Greeter/NarrowView.qml:135
325507#, qt-format
326508msgid "Sorry, incorrect %1"
327509msgstr "Špatné %1"
328510
329−#: qml/Greeter/NarrowView.qml:120
511+#: qml/Greeter/NarrowView.qml:136
330512msgid "Sorry, incorrect passphrase"
331513msgstr "Špatné heslo"
332514
333−#: qml/Greeter/NarrowView.qml:121
515+#: qml/Greeter/NarrowView.qml:137
334516msgctxt "passphrase"
335517msgid "Please re-enter"
336518msgstr ""
337519
338−#: qml/Greeter/NarrowView.qml:122
520+#: qml/Greeter/NarrowView.qml:138
339521msgid "Sorry, incorrect passcode"
340522msgstr "Špatné heslo"
341523
@@ -433,32 +615,12 @@ msgstr ""
433615msgid "Drag using 3 fingers any application from one window to the other"
434616msgstr ""
435617
436−#: qml/Tutorial/TutorialBottom.qml:78
437−msgid "Swipe up to add a contact"
438−msgstr ""
439−
440−#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Swipe up for favorite calculations"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:82
445−msgid "Swipe up for recent calls"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Swipe up to create a message"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Swipe up to manage the app"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialLeftLong.qml:47
618+#: qml/Tutorial/TutorialLeftLong.qml:49
457619msgid "Long swipe from the left edge to open the Today scope"
458620msgstr ""
459621
460622#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
623+msgid "Short swipe from the left edge to open the launcher"
462624msgstr ""
463625
464626#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +628,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466628msgstr ""
467629
468630#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
631+msgid "Swipe from the right edge to view your open apps"
470632msgstr ""
471633
472634#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Swipe from the top right edge to open the notification bar"
474−msgstr ""
475−
476−#: qml/Tutorial/TutorialTop.qml:54
477−msgid "Swipe from the top edge to open the notification bar"
635+msgid "Swipe from the top edge to access notifications and quick settings"
478636msgstr ""
479637
480638#: qml/Wizard/Page.qml:54
@@ -486,15 +644,32 @@ msgstr "Zpět"
486644msgid "Language"
487645msgstr ""
488646
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
647+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
490648#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491649#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492650#: qml/Wizard/Pages/75-report-check.qml:84
493−#: qml/Wizard/Pages/passcode-desktop.qml:124
651+#: qml/Wizard/Pages/passcode-desktop.qml:141
494652#: qml/Wizard/Pages/password-set.qml:141
495653msgid "Next"
496654msgstr ""
497655
656+#: qml/Wizard/Pages/20-keyboard.qml:30
657+msgid "Select Keyboard"
658+msgstr ""
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:70
661+msgid "Keyboard language"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:92
665+msgid "Keyboard layout"
666+msgstr ""
667+
668+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
669+#: qml/Wizard/Pages/sim.qml:101
670+msgid "Skip"
671+msgstr "Přeskočit"
672+
498673#: qml/Wizard/Pages/30-wifi.qml:29
499674msgid "Connect to Wi‑Fi"
500675msgstr "Připojte se k Wi-Fi"
@@ -511,11 +686,6 @@ msgstr ""
511686msgid "No available Wi-Fi networks"
512687msgstr ""
513688
514−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515−#: qml/Wizard/Pages/sim.qml:101
516−msgid "Skip"
517−msgstr "Přeskočit"
518−
519689#: qml/Wizard/Pages/40-location.qml:27
520690msgid "Location Services"
521691msgstr ""
@@ -599,6 +769,35 @@ msgstr ""
599769msgid "Privacy policy"
600770msgstr ""
601771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr ""
800+
602801#: qml/Wizard/Pages/80-finished.qml:89
603802msgid "Welcome to Ubuntu"
604803msgstr ""
@@ -642,7 +841,7 @@ msgid "Service Terms"
642841msgstr ""
643842
644843#: qml/Wizard/Pages/passcode-confirm.qml:43
645−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
646845msgid "Confirm passcode"
647846msgstr "Potvrdit číselné heslo"
648847
@@ -659,24 +858,24 @@ msgstr ""
659858msgid "Lock Screen Passcode"
660859msgstr ""
661860
662−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
663862msgid "Enter 4 numbers to setup your passcode"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
667866#: qml/Wizard/Pages/passcode-set.qml:54
668867msgid "Choose passcode"
669868msgstr ""
670869
671−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
672871msgid "Passcode too short"
673872msgstr ""
674873
675−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
676875msgid "Passcodes match"
677876msgstr ""
678877
679−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
680879msgid "Passcodes do not match"
681880msgstr ""
682881
@@ -725,26 +924,30 @@ msgid "To proceed with no SIM tap Skip."
725924msgstr ""
726925
727926#: qml/Wizard/PasswordMeter.qml:87
728−msgid "Passwords match"
927+msgid "Password too short"
729928msgstr ""
730929
731930#: qml/Wizard/PasswordMeter.qml:89
931+msgid "Passwords match"
932+msgstr ""
933+
934+#: qml/Wizard/PasswordMeter.qml:91
732935msgid "Passwords do not match"
733936msgstr ""
734937
735−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
736939msgid "Strong password"
737940msgstr ""
738941
739−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
740943msgid "Fair password"
741944msgstr ""
742945
743−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
744947msgid "Weak password"
745948msgstr ""
746949
747−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
748951msgid "Very weak password"
749952msgstr ""
750953
@@ -820,6 +1023,9 @@ msgstr ""
8201023#~ msgid "Shut down"
8211024#~ msgstr "Vypnout"
8221025
1026+#~ msgid "Tap to unlock"
1027+#~ msgstr "Klepnout pro odemčení"
1028+
8231029#~ msgid "Please re-enter"
8241030#~ msgstr "Vložte znovu"
8251031
po/cy.po+300−94
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1111"PO-Revision-Date: 2015-07-31 13:21+0000\n"
1212"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
1313"Language-Team: Welsh <cy@li.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
1818"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:21+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:55+0000\n"
20+"X-Generator: Launchpad (build 18179)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Cyfrinair: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
2828msgid "Pin shortcut"
2929msgstr "Pinio llwybr byr"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
3232msgid "Quit"
3333msgstr ""
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
3636msgid "Unpin shortcut"
3737msgstr "Dadbinio llwybr byr"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
4040msgid "Device Locked"
4141msgstr "Dyfais ar glo"
4242
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
4444msgid "You have been locked out due to too many failed passphrase attempts."
4545msgstr ""
4646"Cawsoch eich cloi allan am gyflwyno cyfrinair anghywir ormod o weithiau."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Cawsoch eich cloi allan am gyflwyno côd mynediad anghywir ormod o weithiau."
5252
53−#: qml/Components/DelayedLockscreen.qml:74
53+#: qml/Components/DelayedLockscreen.qml:75
5454#, qt-format
5555msgid "Please wait %1 minute and then try again…"
5656msgid_plural "Please wait %1 minutes and then try again…"
@@ -59,54 +59,54 @@ msgstr[1] "Arhoswch am %1 munud cyn cynnig eto..."
5959msgstr[2] "Arhoswch am %1 munud cyn cynnig eto..."
6060msgstr[3] "Arhoswch am %1 munud cyn cynnig eto..."
6161
62−#: qml/Components/Dialogs.qml:144
62+#: qml/Components/Dialogs.qml:146
6363msgctxt "Title: Lock/Log out dialog"
6464msgid "Log out"
6565msgstr "Allgofnodi"
6666
67−#: qml/Components/Dialogs.qml:145
67+#: qml/Components/Dialogs.qml:147
6868msgid "Are you sure you want to log out?"
6969msgstr "Ydych chi'n sicr eich bod am allgofnodi?"
7070
71−#: qml/Components/Dialogs.qml:147
71+#: qml/Components/Dialogs.qml:149
7272msgctxt "Button: Lock the system"
7373msgid "Lock"
7474msgstr "Cloi"
7575
76−#: qml/Components/Dialogs.qml:154
76+#: qml/Components/Dialogs.qml:156
7777msgctxt "Button: Log out from the system"
7878msgid "Log Out"
7979msgstr "Allgofnodi"
8080
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8282#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8383#: qml/Wizard/Pages/passcode-set.qml:32
8484msgid "Cancel"
8585msgstr "Diddymu"
8686
87−#: qml/Components/Dialogs.qml:173
87+#: qml/Components/Dialogs.qml:175
8888msgctxt "Title: Reboot dialog"
8989msgid "Reboot"
9090msgstr "Ailgychwyn"
9191
92−#: qml/Components/Dialogs.qml:174
92+#: qml/Components/Dialogs.qml:176
9393msgid "Are you sure you want to reboot?"
9494msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
9595
96−#: qml/Components/Dialogs.qml:176
96+#: qml/Components/Dialogs.qml:178
9797msgid "No"
9898msgstr "Na"
9999
100−#: qml/Components/Dialogs.qml:182
100+#: qml/Components/Dialogs.qml:184
101101msgid "Yes"
102102msgstr "Ydw"
103103
104−#: qml/Components/Dialogs.qml:197
104+#: qml/Components/Dialogs.qml:199
105105msgctxt "Title: Power off/Restart dialog"
106106msgid "Power"
107107msgstr "Pŵer"
108108
109−#: qml/Components/Dialogs.qml:198
109+#: qml/Components/Dialogs.qml:200
110110msgid ""
111111"Are you sure you would like\n"
112112"to power off?"
@@ -114,28 +114,198 @@ msgstr ""
114114"Ydych chi'n sicr eich bod am\n"
115115"ddiffodd y pŵer?"
116116
117−#: qml/Components/Dialogs.qml:200
117+#: qml/Components/Dialogs.qml:202
118118msgctxt "Button: Power off the system"
119119msgid "Power off"
120120msgstr "Diffodd y pŵer"
121121
122−#: qml/Components/Dialogs.qml:209
122+#: qml/Components/Dialogs.qml:211
123123msgctxt "Button: Restart the system"
124124msgid "Restart"
125125msgstr "Ailgychwyn"
126126
127−#: qml/Components/Lockscreen.qml:231
127+#: qml/Components/KeyboardShortcutsOverlay.qml:41
128+msgid "Keyboard Shortcuts"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:55
132+msgid "Unity 8"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:62
136+msgid "PrtScr"
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:67
140+msgid "Takes a screenshot."
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:75
144+msgid "Alt + PrtScr"
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:80
148+msgid "Takes a screenshot of a window."
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:88
152+msgid "Super + Space"
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:93
156+msgid "Switches to next keyboard layout."
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:101
160+msgid "Super + Shift + Space"
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:106
164+msgid "Switches to previous keyboard layout."
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:118
168+msgid "Launcher"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:125
172+msgid "Super (Hold)"
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:130
176+msgid "Opens the launcher, displays shortcuts."
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:138
180+msgid "Alt + F1"
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:143
184+msgid "Opens launcher keyboard navigation mode."
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:151
188+msgid "Super + Tab"
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:156
192+msgid "Switches applications via the launcher."
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:164
196+msgid "Super + 0 to 9"
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:169
200+msgid "Same as clicking on a launcher icon."
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:181
204+msgid "Scopes"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:188
208+msgid "Super (Tap)"
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:193
212+msgid "Opens the Scopes home."
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:209
216+msgid "Switching"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:216
220+msgid "Alt + Tab"
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:221
224+msgid "Switches between applications."
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:229
228+msgid "Super + W"
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:234
232+msgid "Opens the desktop spread."
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:242
236+msgid "Cursor Left or Right"
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:247
240+msgid "Moves the focus."
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:259
244+msgid "Windows"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:266
248+msgid "Ctrl + Super + D"
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:271
252+msgid "Minimizes all windows."
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:279
256+msgid "Ctrl + Super + Up"
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:284
260+msgid "Maximizes the current window."
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:292
264+msgid "Ctrl + Super + Down"
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:297
268+msgid "Minimizes or restores the current window."
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:305
272+msgid "Ctrl + Super + Left or Right"
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:310
276+msgid "Semi-maximizes the current window."
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:318
280+msgid "Alt + F4"
281+msgstr ""
282+
283+#: qml/Components/KeyboardShortcutsOverlay.qml:323
284+msgid "Closes the current window."
285+msgstr ""
286+
287+#: qml/Components/Lockscreen.qml:239
128288msgid "Return to Call"
129289msgstr "Nôl i'r alwad"
130290
131−#: qml/Components/Lockscreen.qml:231
291+#: qml/Components/Lockscreen.qml:239
132292msgid "Emergency Call"
133293msgstr "Galwad Frys"
134294
135−#: qml/Components/Lockscreen.qml:263
295+#: qml/Components/Lockscreen.qml:271
136296msgid "OK"
137297msgstr "Iawn"
138298
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
300+#, qt-format
301+msgid "%1:%2:%3"
302+msgstr ""
303+
304+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
305+#, qt-format
306+msgid "%1:%2"
307+msgstr ""
308+
139309#: qml/Components/ModeSwitchWarningDialog.qml:32
140310msgid "Apps may have unsaved data:"
141311msgstr ""
@@ -162,6 +332,10 @@ msgstr ""
162332msgid "Close all"
163333msgstr ""
164334
335+#: qml/Components/SharingPicker.qml:54
336+msgid "Preview Share Item"
337+msgstr ""
338+
165339#: qml/Dash/DashPageHeader.qml:333
166340msgctxt "Button: Open the Ubuntu Store"
167341msgid "Store"
@@ -193,15 +367,15 @@ msgstr ""
193367msgid "Reset"
194368msgstr ""
195369
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
370+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197371msgid "Show less"
198372msgstr ""
199373
200−#: qml/Dash/GenericScopeView.qml:579
374+#: qml/Dash/GenericScopeView.qml:580
201375msgid "Show all"
202376msgstr ""
203377
204−#: qml/Dash/GenericScopeView.qml:636
378+#: qml/Dash/GenericScopeView.qml:637
205379msgctxt "Label: Hint for dash search line edit"
206380msgid "Search"
207381msgstr "Chwilio"
@@ -235,10 +409,6 @@ msgstr "Graddio hwn"
235409msgid "Add a review"
236410msgstr "Ychwanegu adolygiad"
237411
238−#: qml/Dash/Previews/PreviewSharing.qml:66
239−msgid "Preview Share Item"
240−msgstr ""
241−
242412#: qml/Dash/PullToRefreshScopeStyle.qml:55
243413msgid "Pull to refresh…"
244414msgstr "Tynnwch i adnewyddu..."
@@ -255,11 +425,11 @@ msgstr "Galluogi data lleoliad"
255425msgid "Manage"
256426msgstr "Rheoli"
257427
258−#: qml/Dash/ScopesList.qml:101
428+#: qml/Dash/ScopesList.qml:102
259429msgid "Home"
260430msgstr "Cartref"
261431
262−#: qml/Dash/ScopesList.qml:102
432+#: qml/Dash/ScopesList.qml:103
263433msgid "Also installed"
264434msgstr "Hefyd wedi gosod"
265435
@@ -269,17 +439,29 @@ msgid ""
269439"touch pad to interact with the pointer."
270440msgstr ""
271441
272−#: qml/Greeter/CoverPage.qml:118
442+#: qml/Greeter/CoverPage.qml:127
273443msgid "Unlock"
274444msgstr "Datgloi"
275445
276−#: qml/Greeter/LoginList.qml:239
446+#: qml/Greeter/Greeter.qml:539
447+msgid "Try again"
448+msgstr ""
449+
450+#: qml/Greeter/LoginList.qml:63
451+msgid "Passphrase"
452+msgstr ""
453+
454+#: qml/Greeter/LoginList.qml:64
455+msgid "Passcode"
456+msgstr ""
457+
458+#: qml/Greeter/LoginList.qml:259
277459msgid "Retry"
278460msgstr "Ailgynnig"
279461
280−#: qml/Greeter/LoginList.qml:240
281−msgid "Tap to unlock"
282−msgstr "Tapiwch i ddatgloi"
462+#: qml/Greeter/LoginList.qml:260
463+msgid "Log In"
464+msgstr ""
283465
284466#: qml/Greeter/NarrowView.qml:54
285467msgid "Sorry, incorrect passphrase."
@@ -309,34 +491,34 @@ msgstr ""
309491"Os fydd y cod cyfrinachol yn anghywir bydd eich ffôn yn cael ei ailosod i "
310492"gyflwr ffatri a bydd data personol yn cael ei ddileu."
311493
312−#: qml/Greeter/NarrowView.qml:116
494+#: qml/Greeter/NarrowView.qml:129
313495#, qt-format
314496msgid "Enter %1"
315497msgstr "Rhowch %1"
316498
317−#: qml/Greeter/NarrowView.qml:117
499+#: qml/Greeter/NarrowView.qml:130
318500msgid "Enter passphrase"
319501msgstr "Rhowch gyfrinair"
320502
321−#: qml/Greeter/NarrowView.qml:118
503+#: qml/Greeter/NarrowView.qml:131
322504msgid "Enter passcode"
323505msgstr "Rhowch god cyfrinachol"
324506
325−#: qml/Greeter/NarrowView.qml:119
507+#: qml/Greeter/NarrowView.qml:135
326508#, qt-format
327509msgid "Sorry, incorrect %1"
328510msgstr "%1 anghywir"
329511
330−#: qml/Greeter/NarrowView.qml:120
512+#: qml/Greeter/NarrowView.qml:136
331513msgid "Sorry, incorrect passphrase"
332514msgstr "Cyfrinair anghywir"
333515
334−#: qml/Greeter/NarrowView.qml:121
516+#: qml/Greeter/NarrowView.qml:137
335517msgctxt "passphrase"
336518msgid "Please re-enter"
337519msgstr "Ceisiwch eto"
338520
339−#: qml/Greeter/NarrowView.qml:122
521+#: qml/Greeter/NarrowView.qml:138
340522msgid "Sorry, incorrect passcode"
341523msgstr "Cod cyfrinachol anghywir"
342524
@@ -437,32 +619,12 @@ msgstr ""
437619msgid "Drag using 3 fingers any application from one window to the other"
438620msgstr ""
439621
440−#: qml/Tutorial/TutorialBottom.qml:78
441−msgid "Swipe up to add a contact"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:80
445−msgid "Swipe up for favorite calculations"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:82
449−msgid "Swipe up for recent calls"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:84
453−msgid "Swipe up to create a message"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialBottom.qml:85
457−msgid "Swipe up to manage the app"
458−msgstr ""
459−
460−#: qml/Tutorial/TutorialLeftLong.qml:47
622+#: qml/Tutorial/TutorialLeftLong.qml:49
461623msgid "Long swipe from the left edge to open the Today scope"
462624msgstr ""
463625
464626#: qml/Tutorial/TutorialLeft.qml:47
465−msgid "Swipe from the left edge to open the launcher"
627+msgid "Short swipe from the left edge to open the launcher"
466628msgstr ""
467629
468630#: qml/Tutorial/TutorialRight.qml:55
@@ -470,15 +632,11 @@ msgid "Push your mouse against the right edge to view your open apps"
470632msgstr ""
471633
472634#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
635+msgid "Swipe from the right edge to view your open apps"
474636msgstr ""
475637
476638#: qml/Tutorial/TutorialTop.qml:53
477−msgid "Swipe from the top right edge to open the notification bar"
478−msgstr ""
479−
480−#: qml/Tutorial/TutorialTop.qml:54
481−msgid "Swipe from the top edge to open the notification bar"
639+msgid "Swipe from the top edge to access notifications and quick settings"
482640msgstr ""
483641
484642#: qml/Wizard/Page.qml:54
@@ -490,15 +648,32 @@ msgstr "Nôl"
490648msgid "Language"
491649msgstr ""
492650
493−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
651+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
494652#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
495653#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
496654#: qml/Wizard/Pages/75-report-check.qml:84
497−#: qml/Wizard/Pages/passcode-desktop.qml:124
655+#: qml/Wizard/Pages/passcode-desktop.qml:141
498656#: qml/Wizard/Pages/password-set.qml:141
499657msgid "Next"
500658msgstr ""
501659
660+#: qml/Wizard/Pages/20-keyboard.qml:30
661+msgid "Select Keyboard"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:70
665+msgid "Keyboard language"
666+msgstr ""
667+
668+#: qml/Wizard/Pages/20-keyboard.qml:92
669+msgid "Keyboard layout"
670+msgstr ""
671+
672+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
673+#: qml/Wizard/Pages/sim.qml:101
674+msgid "Skip"
675+msgstr "Neidio"
676+
502677#: qml/Wizard/Pages/30-wifi.qml:29
503678msgid "Connect to Wi‑Fi"
504679msgstr "Cysylltu â diwifr"
@@ -515,11 +690,6 @@ msgstr ""
515690msgid "No available Wi-Fi networks"
516691msgstr ""
517692
518−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
519−#: qml/Wizard/Pages/sim.qml:101
520−msgid "Skip"
521−msgstr "Neidio"
522−
523693#: qml/Wizard/Pages/40-location.qml:27
524694msgid "Location Services"
525695msgstr ""
@@ -603,6 +773,35 @@ msgstr ""
603773msgid "Privacy policy"
604774msgstr ""
605775
776+#: qml/Wizard/Pages/77-system-update.qml:28
777+msgid "Update Device"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:55
781+msgid ""
782+"There is a system update available and ready to install. Afterwards, the "
783+"device will automatically restart."
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:76
787+msgctxt "string identifying name of the update"
788+msgid "Ubuntu system"
789+msgstr ""
790+
791+#: qml/Wizard/Pages/77-system-update.qml:83
792+#, qt-format
793+msgctxt "version of the system update"
794+msgid "Version %1"
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:102
798+msgid "This could take a few minutes..."
799+msgstr ""
800+
801+#: qml/Wizard/Pages/77-system-update.qml:116
802+msgid "Install and restart now"
803+msgstr ""
804+
606805#: qml/Wizard/Pages/80-finished.qml:89
607806msgid "Welcome to Ubuntu"
608807msgstr ""
@@ -646,7 +845,7 @@ msgid "Service Terms"
646845msgstr ""
647846
648847#: qml/Wizard/Pages/passcode-confirm.qml:43
649−#: qml/Wizard/Pages/passcode-desktop.qml:80
848+#: qml/Wizard/Pages/passcode-desktop.qml:96
650849msgid "Confirm passcode"
651850msgstr "Cadarnhau cod cyfrinachol"
652851
@@ -663,24 +862,24 @@ msgstr ""
663862msgid "Lock Screen Passcode"
664863msgstr ""
665864
666−#: qml/Wizard/Pages/passcode-desktop.qml:56
865+#: qml/Wizard/Pages/passcode-desktop.qml:60
667866msgid "Enter 4 numbers to setup your passcode"
668867msgstr ""
669868
670−#: qml/Wizard/Pages/passcode-desktop.qml:65
869+#: qml/Wizard/Pages/passcode-desktop.qml:76
671870#: qml/Wizard/Pages/passcode-set.qml:54
672871msgid "Choose passcode"
673872msgstr ""
674873
675−#: qml/Wizard/Pages/passcode-desktop.qml:105
874+#: qml/Wizard/Pages/passcode-desktop.qml:126
676875msgid "Passcode too short"
677876msgstr ""
678877
679−#: qml/Wizard/Pages/passcode-desktop.qml:107
878+#: qml/Wizard/Pages/passcode-desktop.qml:128
680879msgid "Passcodes match"
681880msgstr ""
682881
683−#: qml/Wizard/Pages/passcode-desktop.qml:109
882+#: qml/Wizard/Pages/passcode-desktop.qml:130
684883msgid "Passcodes do not match"
685884msgstr ""
686885
@@ -729,26 +928,30 @@ msgid "To proceed with no SIM tap Skip."
729928msgstr ""
730929
731930#: qml/Wizard/PasswordMeter.qml:87
732−msgid "Passwords match"
931+msgid "Password too short"
733932msgstr ""
734933
735934#: qml/Wizard/PasswordMeter.qml:89
935+msgid "Passwords match"
936+msgstr ""
937+
938+#: qml/Wizard/PasswordMeter.qml:91
736939msgid "Passwords do not match"
737940msgstr ""
738941
739−#: qml/Wizard/PasswordMeter.qml:93
942+#: qml/Wizard/PasswordMeter.qml:95
740943msgid "Strong password"
741944msgstr ""
742945
743−#: qml/Wizard/PasswordMeter.qml:95
946+#: qml/Wizard/PasswordMeter.qml:97
744947msgid "Fair password"
745948msgstr ""
746949
747−#: qml/Wizard/PasswordMeter.qml:97
950+#: qml/Wizard/PasswordMeter.qml:99
748951msgid "Weak password"
749952msgstr ""
750953
751−#: qml/Wizard/PasswordMeter.qml:99
954+#: qml/Wizard/PasswordMeter.qml:101
752955msgid "Very weak password"
753956msgstr ""
754957
@@ -803,6 +1006,9 @@ msgstr ""
8031006#~ msgid "See less"
8041007#~ msgstr "Gweld llai"
8051008
1009+#~ msgid "Tap to unlock"
1010+#~ msgstr "Tapiwch i ddatgloi"
1011+
8061012#~ msgid "This action does different things for different apps"
8071013#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
8081014
po/da.po+300−94
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
11+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
1212"PO-Revision-Date: 2015-07-06 12:05+0000\n"
1313"Last-Translator: Folmer Fredslund <Unknown>\n"
1414"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,97 +16,97 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
20+"X-Generator: Launchpad (build 18179)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Adgangskode: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
2828msgid "Pin shortcut"
2929msgstr "Fastgør genvej"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
3232msgid "Quit"
3333msgstr ""
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
3636msgid "Unpin shortcut"
3737msgstr "Gør genvej flytbar"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
4040msgid "Device Locked"
4141msgstr "Enheden er låst"
4242
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
4444msgid "You have been locked out due to too many failed passphrase attempts."
4545msgstr ""
4646"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
4747"adgangskode."
4848
49−#: qml/Components/DelayedLockscreen.qml:65
49+#: qml/Components/DelayedLockscreen.qml:66
5050msgid "You have been locked out due to too many failed passcode attempts."
5151msgstr ""
5252"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
5353"adgangskode."
5454
55−#: qml/Components/DelayedLockscreen.qml:74
55+#: qml/Components/DelayedLockscreen.qml:75
5656#, qt-format
5757msgid "Please wait %1 minute and then try again…"
5858msgid_plural "Please wait %1 minutes and then try again…"
5959msgstr[0] "Vent venligst %1 minut og prøv igen..."
6060msgstr[1] "Vent venligst %1 minutter og prøv igen..."
6161
62−#: qml/Components/Dialogs.qml:144
62+#: qml/Components/Dialogs.qml:146
6363msgctxt "Title: Lock/Log out dialog"
6464msgid "Log out"
6565msgstr "Log af"
6666
67−#: qml/Components/Dialogs.qml:145
67+#: qml/Components/Dialogs.qml:147
6868msgid "Are you sure you want to log out?"
6969msgstr "Vil du logge ud?"
7070
71−#: qml/Components/Dialogs.qml:147
71+#: qml/Components/Dialogs.qml:149
7272msgctxt "Button: Lock the system"
7373msgid "Lock"
7474msgstr "Lås"
7575
76−#: qml/Components/Dialogs.qml:154
76+#: qml/Components/Dialogs.qml:156
7777msgctxt "Button: Log out from the system"
7878msgid "Log Out"
7979msgstr "Log af"
8080
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8282#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8383#: qml/Wizard/Pages/passcode-set.qml:32
8484msgid "Cancel"
8585msgstr "Annullér"
8686
87−#: qml/Components/Dialogs.qml:173
87+#: qml/Components/Dialogs.qml:175
8888msgctxt "Title: Reboot dialog"
8989msgid "Reboot"
9090msgstr "Genstart"
9191
92−#: qml/Components/Dialogs.qml:174
92+#: qml/Components/Dialogs.qml:176
9393msgid "Are you sure you want to reboot?"
9494msgstr "Er du sikker på du vil genstarte?"
9595
96−#: qml/Components/Dialogs.qml:176
96+#: qml/Components/Dialogs.qml:178
9797msgid "No"
9898msgstr "Nej"
9999
100−#: qml/Components/Dialogs.qml:182
100+#: qml/Components/Dialogs.qml:184
101101msgid "Yes"
102102msgstr "Ja"
103103
104−#: qml/Components/Dialogs.qml:197
104+#: qml/Components/Dialogs.qml:199
105105msgctxt "Title: Power off/Restart dialog"
106106msgid "Power"
107107msgstr "Sluk/genstart"
108108
109−#: qml/Components/Dialogs.qml:198
109+#: qml/Components/Dialogs.qml:200
110110msgid ""
111111"Are you sure you would like\n"
112112"to power off?"
@@ -114,28 +114,198 @@ msgstr ""
114114"Er du sikker på at du vil\n"
115115"slukke enheden?"
116116
117−#: qml/Components/Dialogs.qml:200
117+#: qml/Components/Dialogs.qml:202
118118msgctxt "Button: Power off the system"
119119msgid "Power off"
120120msgstr "Luk ned"
121121
122−#: qml/Components/Dialogs.qml:209
122+#: qml/Components/Dialogs.qml:211
123123msgctxt "Button: Restart the system"
124124msgid "Restart"
125125msgstr "Genstart"
126126
127−#: qml/Components/Lockscreen.qml:231
127+#: qml/Components/KeyboardShortcutsOverlay.qml:41
128+msgid "Keyboard Shortcuts"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:55
132+msgid "Unity 8"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:62
136+msgid "PrtScr"
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:67
140+msgid "Takes a screenshot."
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:75
144+msgid "Alt + PrtScr"
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:80
148+msgid "Takes a screenshot of a window."
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:88
152+msgid "Super + Space"
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:93
156+msgid "Switches to next keyboard layout."
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:101
160+msgid "Super + Shift + Space"
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:106
164+msgid "Switches to previous keyboard layout."
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:118
168+msgid "Launcher"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:125
172+msgid "Super (Hold)"
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:130
176+msgid "Opens the launcher, displays shortcuts."
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:138
180+msgid "Alt + F1"
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:143
184+msgid "Opens launcher keyboard navigation mode."
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:151
188+msgid "Super + Tab"
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:156
192+msgid "Switches applications via the launcher."
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:164
196+msgid "Super + 0 to 9"
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:169
200+msgid "Same as clicking on a launcher icon."
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:181
204+msgid "Scopes"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:188
208+msgid "Super (Tap)"
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:193
212+msgid "Opens the Scopes home."
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:209
216+msgid "Switching"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:216
220+msgid "Alt + Tab"
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:221
224+msgid "Switches between applications."
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:229
228+msgid "Super + W"
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:234
232+msgid "Opens the desktop spread."
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:242
236+msgid "Cursor Left or Right"
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:247
240+msgid "Moves the focus."
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:259
244+msgid "Windows"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:266
248+msgid "Ctrl + Super + D"
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:271
252+msgid "Minimizes all windows."
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:279
256+msgid "Ctrl + Super + Up"
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:284
260+msgid "Maximizes the current window."
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:292
264+msgid "Ctrl + Super + Down"
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:297
268+msgid "Minimizes or restores the current window."
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:305
272+msgid "Ctrl + Super + Left or Right"
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:310
276+msgid "Semi-maximizes the current window."
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:318
280+msgid "Alt + F4"
281+msgstr ""
282+
283+#: qml/Components/KeyboardShortcutsOverlay.qml:323
284+msgid "Closes the current window."
285+msgstr ""
286+
287+#: qml/Components/Lockscreen.qml:239
128288msgid "Return to Call"
129289msgstr "Vend tilbage til opkald"
130290
131−#: qml/Components/Lockscreen.qml:231
291+#: qml/Components/Lockscreen.qml:239
132292msgid "Emergency Call"
133293msgstr "Nødopkald"
134294
135−#: qml/Components/Lockscreen.qml:263
295+#: qml/Components/Lockscreen.qml:271
136296msgid "OK"
137297msgstr "Ok"
138298
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
300+#, qt-format
301+msgid "%1:%2:%3"
302+msgstr ""
303+
304+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
305+#, qt-format
306+msgid "%1:%2"
307+msgstr ""
308+
139309#: qml/Components/ModeSwitchWarningDialog.qml:32
140310msgid "Apps may have unsaved data:"
141311msgstr ""
@@ -162,6 +332,10 @@ msgstr ""
162332msgid "Close all"
163333msgstr ""
164334
335+#: qml/Components/SharingPicker.qml:54
336+msgid "Preview Share Item"
337+msgstr ""
338+
165339#: qml/Dash/DashPageHeader.qml:333
166340msgctxt "Button: Open the Ubuntu Store"
167341msgid "Store"
@@ -193,15 +367,15 @@ msgstr ""
193367msgid "Reset"
194368msgstr ""
195369
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
370+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197371msgid "Show less"
198372msgstr ""
199373
200−#: qml/Dash/GenericScopeView.qml:579
374+#: qml/Dash/GenericScopeView.qml:580
201375msgid "Show all"
202376msgstr ""
203377
204−#: qml/Dash/GenericScopeView.qml:636
378+#: qml/Dash/GenericScopeView.qml:637
205379msgctxt "Label: Hint for dash search line edit"
206380msgid "Search"
207381msgstr "Søg"
@@ -235,10 +409,6 @@ msgstr "Bedøm dette"
235409msgid "Add a review"
236410msgstr "Tilføj en anmeldelse"
237411
238−#: qml/Dash/Previews/PreviewSharing.qml:66
239−msgid "Preview Share Item"
240−msgstr ""
241−
242412#: qml/Dash/PullToRefreshScopeStyle.qml:55
243413msgid "Pull to refresh…"
244414msgstr "Træk ned for at genindlæse..."
@@ -255,11 +425,11 @@ msgstr "Aktivér lokationsdata"
255425msgid "Manage"
256426msgstr "Administrér"
257427
258−#: qml/Dash/ScopesList.qml:101
428+#: qml/Dash/ScopesList.qml:102
259429msgid "Home"
260430msgstr "Hjem"
261431
262−#: qml/Dash/ScopesList.qml:102
432+#: qml/Dash/ScopesList.qml:103
263433msgid "Also installed"
264434msgstr "Også installeret"
265435
@@ -269,17 +439,29 @@ msgid ""
269439"touch pad to interact with the pointer."
270440msgstr ""
271441
272−#: qml/Greeter/CoverPage.qml:118
442+#: qml/Greeter/CoverPage.qml:127
273443msgid "Unlock"
274444msgstr "Lås op"
275445
276−#: qml/Greeter/LoginList.qml:239
446+#: qml/Greeter/Greeter.qml:539
447+msgid "Try again"
448+msgstr ""
449+
450+#: qml/Greeter/LoginList.qml:63
451+msgid "Passphrase"
452+msgstr ""
453+
454+#: qml/Greeter/LoginList.qml:64
455+msgid "Passcode"
456+msgstr ""
457+
458+#: qml/Greeter/LoginList.qml:259
277459msgid "Retry"
278460msgstr "Forsøg igen"
279461
280−#: qml/Greeter/LoginList.qml:240
281−msgid "Tap to unlock"
282−msgstr "Tap for at låse op"
462+#: qml/Greeter/LoginList.qml:260
463+msgid "Log In"
464+msgstr ""
283465
284466#: qml/Greeter/NarrowView.qml:54
285467msgid "Sorry, incorrect passphrase."
@@ -309,34 +491,34 @@ msgstr ""
309491"Hvis adgangskoden er forkert, vil telefonen blive gendannet til "
310492"fabriksindstillinger og al personlig data vil blive slettet."
311493
312−#: qml/Greeter/NarrowView.qml:116
494+#: qml/Greeter/NarrowView.qml:129
313495#, qt-format
314496msgid "Enter %1"
315497msgstr "Indtast %1"
316498
317−#: qml/Greeter/NarrowView.qml:117
499+#: qml/Greeter/NarrowView.qml:130
318500msgid "Enter passphrase"
319501msgstr "Angiv adgangsfrase"
320502
321−#: qml/Greeter/NarrowView.qml:118
503+#: qml/Greeter/NarrowView.qml:131
322504msgid "Enter passcode"
323505msgstr "Indtast adgangskode"
324506
325−#: qml/Greeter/NarrowView.qml:119
507+#: qml/Greeter/NarrowView.qml:135
326508#, qt-format
327509msgid "Sorry, incorrect %1"
328510msgstr "Beklager, forkert %1"
329511
330−#: qml/Greeter/NarrowView.qml:120
512+#: qml/Greeter/NarrowView.qml:136
331513msgid "Sorry, incorrect passphrase"
332514msgstr "Beklager, forkert adgangsfrase"
333515
334−#: qml/Greeter/NarrowView.qml:121
516+#: qml/Greeter/NarrowView.qml:137
335517msgctxt "passphrase"
336518msgid "Please re-enter"
337519msgstr ""
338520
339−#: qml/Greeter/NarrowView.qml:122
521+#: qml/Greeter/NarrowView.qml:138
340522msgid "Sorry, incorrect passcode"
341523msgstr "Beklager, forkert adgangskode"
342524
@@ -431,32 +613,12 @@ msgstr ""
431613msgid "Drag using 3 fingers any application from one window to the other"
432614msgstr ""
433615
434−#: qml/Tutorial/TutorialBottom.qml:78
435−msgid "Swipe up to add a contact"
436−msgstr ""
437−
438−#: qml/Tutorial/TutorialBottom.qml:80
439−msgid "Swipe up for favorite calculations"
440−msgstr ""
441−
442−#: qml/Tutorial/TutorialBottom.qml:82
443−msgid "Swipe up for recent calls"
444−msgstr ""
445−
446−#: qml/Tutorial/TutorialBottom.qml:84
447−msgid "Swipe up to create a message"
448−msgstr ""
449−
450−#: qml/Tutorial/TutorialBottom.qml:85
451−msgid "Swipe up to manage the app"
452−msgstr ""
453−
454−#: qml/Tutorial/TutorialLeftLong.qml:47
616+#: qml/Tutorial/TutorialLeftLong.qml:49
455617msgid "Long swipe from the left edge to open the Today scope"
456618msgstr ""
457619
458620#: qml/Tutorial/TutorialLeft.qml:47
459−msgid "Swipe from the left edge to open the launcher"
621+msgid "Short swipe from the left edge to open the launcher"
460622msgstr ""
461623
462624#: qml/Tutorial/TutorialRight.qml:55
@@ -464,15 +626,11 @@ msgid "Push your mouse against the right edge to view your open apps"
464626msgstr ""
465627
466628#: qml/Tutorial/TutorialRight.qml:56
467−msgid "Short or long swipe from the right edge to view your open apps"
629+msgid "Swipe from the right edge to view your open apps"
468630msgstr ""
469631
470632#: qml/Tutorial/TutorialTop.qml:53
471−msgid "Swipe from the top right edge to open the notification bar"
472−msgstr ""
473−
474−#: qml/Tutorial/TutorialTop.qml:54
475−msgid "Swipe from the top edge to open the notification bar"
633+msgid "Swipe from the top edge to access notifications and quick settings"
476634msgstr ""
477635
478636#: qml/Wizard/Page.qml:54
@@ -484,15 +642,32 @@ msgstr "Tilbage"
484642msgid "Language"
485643msgstr ""
486644
487−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
645+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
488646#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
489647#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
490648#: qml/Wizard/Pages/75-report-check.qml:84
491−#: qml/Wizard/Pages/passcode-desktop.qml:124
649+#: qml/Wizard/Pages/passcode-desktop.qml:141
492650#: qml/Wizard/Pages/password-set.qml:141
493651msgid "Next"
494652msgstr ""
495653
654+#: qml/Wizard/Pages/20-keyboard.qml:30
655+msgid "Select Keyboard"
656+msgstr ""
657+
658+#: qml/Wizard/Pages/20-keyboard.qml:70
659+msgid "Keyboard language"
660+msgstr ""
661+
662+#: qml/Wizard/Pages/20-keyboard.qml:92
663+msgid "Keyboard layout"
664+msgstr ""
665+
666+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
667+#: qml/Wizard/Pages/sim.qml:101
668+msgid "Skip"
669+msgstr "Spring over"
670+
496671#: qml/Wizard/Pages/30-wifi.qml:29
497672msgid "Connect to Wi‑Fi"
498673msgstr "Tilslut til Wi-Fi"
@@ -509,11 +684,6 @@ msgstr ""
509684msgid "No available Wi-Fi networks"
510685msgstr ""
511686
512−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
513−#: qml/Wizard/Pages/sim.qml:101
514−msgid "Skip"
515−msgstr "Spring over"
516−
517687#: qml/Wizard/Pages/40-location.qml:27
518688msgid "Location Services"
519689msgstr ""
@@ -597,6 +767,35 @@ msgstr ""
597767msgid "Privacy policy"
598768msgstr ""
599769
770+#: qml/Wizard/Pages/77-system-update.qml:28
771+msgid "Update Device"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:55
775+msgid ""
776+"There is a system update available and ready to install. Afterwards, the "
777+"device will automatically restart."
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:76
781+msgctxt "string identifying name of the update"
782+msgid "Ubuntu system"
783+msgstr ""
784+
785+#: qml/Wizard/Pages/77-system-update.qml:83
786+#, qt-format
787+msgctxt "version of the system update"
788+msgid "Version %1"
789+msgstr ""
790+
791+#: qml/Wizard/Pages/77-system-update.qml:102
792+msgid "This could take a few minutes..."
793+msgstr ""
794+
795+#: qml/Wizard/Pages/77-system-update.qml:116
796+msgid "Install and restart now"
797+msgstr ""
798+
600799#: qml/Wizard/Pages/80-finished.qml:89
601800msgid "Welcome to Ubuntu"
602801msgstr ""
@@ -640,7 +839,7 @@ msgid "Service Terms"
640839msgstr ""
641840
642841#: qml/Wizard/Pages/passcode-confirm.qml:43
643−#: qml/Wizard/Pages/passcode-desktop.qml:80
842+#: qml/Wizard/Pages/passcode-desktop.qml:96
644843msgid "Confirm passcode"
645844msgstr "Bekræft adgangskode"
646845
@@ -657,24 +856,24 @@ msgstr ""
657856msgid "Lock Screen Passcode"
658857msgstr ""
659858
660−#: qml/Wizard/Pages/passcode-desktop.qml:56
859+#: qml/Wizard/Pages/passcode-desktop.qml:60
661860msgid "Enter 4 numbers to setup your passcode"
662861msgstr ""
663862
664−#: qml/Wizard/Pages/passcode-desktop.qml:65
863+#: qml/Wizard/Pages/passcode-desktop.qml:76
665864#: qml/Wizard/Pages/passcode-set.qml:54
666865msgid "Choose passcode"
667866msgstr ""
668867
669−#: qml/Wizard/Pages/passcode-desktop.qml:105
868+#: qml/Wizard/Pages/passcode-desktop.qml:126
670869msgid "Passcode too short"
671870msgstr ""
672871
673−#: qml/Wizard/Pages/passcode-desktop.qml:107
872+#: qml/Wizard/Pages/passcode-desktop.qml:128
674873msgid "Passcodes match"
675874msgstr ""
676875
677−#: qml/Wizard/Pages/passcode-desktop.qml:109
876+#: qml/Wizard/Pages/passcode-desktop.qml:130
678877msgid "Passcodes do not match"
679878msgstr ""
680879
@@ -723,26 +922,30 @@ msgid "To proceed with no SIM tap Skip."
723922msgstr ""
724923
725924#: qml/Wizard/PasswordMeter.qml:87
726−msgid "Passwords match"
925+msgid "Password too short"
727926msgstr ""
728927
729928#: qml/Wizard/PasswordMeter.qml:89
929+msgid "Passwords match"
930+msgstr ""
931+
932+#: qml/Wizard/PasswordMeter.qml:91
730933msgid "Passwords do not match"
731934msgstr ""
732935
733−#: qml/Wizard/PasswordMeter.qml:93
936+#: qml/Wizard/PasswordMeter.qml:95
734937msgid "Strong password"
735938msgstr ""
736939
737−#: qml/Wizard/PasswordMeter.qml:95
940+#: qml/Wizard/PasswordMeter.qml:97
738941msgid "Fair password"
739942msgstr ""
740943
741−#: qml/Wizard/PasswordMeter.qml:97
944+#: qml/Wizard/PasswordMeter.qml:99
742945msgid "Weak password"
743946msgstr ""
744947
745−#: qml/Wizard/PasswordMeter.qml:99
948+#: qml/Wizard/PasswordMeter.qml:101
746949msgid "Very weak password"
747950msgstr ""
748951
@@ -942,6 +1145,9 @@ msgstr ""
9421145#~ msgid "Reboot"
9431146#~ msgstr "Genstart"
9441147
1148+#~ msgid "Tap to unlock"
1149+#~ msgstr "Tap for at låse op"
1150+
9451151#~ msgid "Roaming"
9461152#~ msgstr "Roaming"
9471153
po/de.po+338−101
@@ -7,105 +7,105 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
11−"PO-Revision-Date: 2016-05-10 19:23+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11+"PO-Revision-Date: 2016-08-28 08:35+0000\n"
1212"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19+"X-Generator: Launchpad (build 18179)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Passwort: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
2727msgid "Pin shortcut"
2828msgstr "Verknüpfung anheften"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Beenden"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Verknüpfung entfernen"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
3939msgid "Device Locked"
4040msgstr "Gerät gesperrt"
4141
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
4545"Das Gerät wurde aufgrund zu vieler falscher Passworteingaben für längere "
4646"Zeit gesperrt."
4747
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
4949msgid "You have been locked out due to too many failed passcode attempts."
5050msgstr ""
5151"Das Gerät wurde aufgrund zu vieler falscher PIN-Eingaben für längere Zeit "
5252"gesperrt."
5353
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
5555#, qt-format
5656msgid "Please wait %1 minute and then try again…"
5757msgid_plural "Please wait %1 minutes and then try again…"
5858msgstr[0] "Bitte %1 Minute warten und es dann erneut versuchen …"
5959msgstr[1] "Bitte %1 Minuten warten und es dann erneut versuchen …"
6060
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
6262msgctxt "Title: Lock/Log out dialog"
6363msgid "Log out"
6464msgstr "Abmelden"
6565
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6767msgid "Are you sure you want to log out?"
6868msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
6969
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
7171msgctxt "Button: Lock the system"
7272msgid "Lock"
7373msgstr "Sperren"
7474
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7676msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Abmelden"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
8181#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Abbrechen"
8585
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8787msgctxt "Title: Reboot dialog"
8888msgid "Reboot"
8989msgstr "Neustarten"
9090
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
9292msgid "Are you sure you want to reboot?"
9393msgstr "Sind Sie sicher, dass Sie neu starten wollen?"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "Nein"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Ja"
102102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104104msgctxt "Title: Power off/Restart dialog"
105105msgid "Power"
106106msgstr "Ausschalten"
107107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109109msgid ""
110110"Are you sure you would like\n"
111111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113113"Sind Sie sicher, dass Sie das\n"
114114"Gerät ausschalten wollen?"
115115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117117msgctxt "Button: Power off the system"
118118msgid "Power off"
119119msgstr "Ausschalten"
120120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122122msgctxt "Button: Restart the system"
123123msgid "Restart"
124124msgstr "Neustarten"
125125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr "Tastaturkürzel"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr "Unity 8"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr "Druck"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr "Bildschirmfoto aufnehmen."
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr "Alt + Druck"
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr "Macht ein Bildschirmfoto eines Fensters."
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr "Super + Leertaste"
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr "Zum nächsten Tastaturlayout umschalten"
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr "Super + Hochstell + Leertaste"
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr "Zum vorherigen Tastaturlayout umschalten"
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr "Starter"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr "Super (gedrückt halten)"
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr "Öffnet den Starter, zeigt Tastaturkürzel."
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr "Alt + F1"
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr "Öffnet Tastaturnavigation des Starters"
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr "Super + Tabulatur"
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr "Schaltet über den Starter zwischen Anwendungen um"
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr "Super + 0 bis 9"
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr "Entspricht dem Anklicken eines Startersymbols."
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr "Scopes"
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr "Super (antippen)"
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr "Öffnet die Scopeübersicht"
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr "Wechseln"
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr "Alt + Tabulator"
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr "Zwischen Anwendungen wechseln."
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr "Super + W"
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr "Zeigt alle geöffneten Fenster nebeneinander."
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr "Pfeiltasten"
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr "Bewegt den Fokus."
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr "Fenster"
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr "Strg + Super + D"
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr "Minimiert alle Fenster."
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr "Strg + Super + hoch"
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr "Maximiert das aktuelle Fenster."
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr "Strg + Super + runter"
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr "Minmiert oder stellt das aktuelle Fenster wieder her."
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr "Strg + Super + links oder rechts"
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr "Maximiert das aktuelle Fenster auf eine Bildschirmhälfte."
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr "Alt + F4"
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr "Schließt das aktive Fenster."
285+
286+#: qml/Components/Lockscreen.qml:239
127287msgid "Return to Call"
128288msgstr "Zu Anruf zurückkehren"
129289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131291msgid "Emergency Call"
132292msgstr "Notruf"
133293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135295msgid "OK"
136296msgstr "OK"
137297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr "%1:%2:%3"
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr "%1:%2"
307+
138308#: qml/Components/ModeSwitchWarningDialog.qml:32
139309msgid "Apps may have unsaved data:"
140310msgstr "Anwendungen könnten ungespeicherte Daten haben:"
@@ -163,6 +333,10 @@ msgstr "Jetzt verbinden!"
163333msgid "Close all"
164334msgstr "Alle schließen"
165335
336+#: qml/Components/SharingPicker.qml:54
337+msgid "Preview Share Item"
338+msgstr "Vorschau für zu teilendes Element"
339+
166340#: qml/Dash/DashPageHeader.qml:333
167341msgctxt "Button: Open the Ubuntu Store"
168342msgid "Store"
@@ -194,15 +368,15 @@ msgstr "Ergebnisse verfeinern"
194368msgid "Reset"
195369msgstr "Zurücksetzen"
196370
197−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
371+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
198372msgid "Show less"
199373msgstr "Weniger anzeigen"
200374
201−#: qml/Dash/GenericScopeView.qml:579
375+#: qml/Dash/GenericScopeView.qml:580
202376msgid "Show all"
203377msgstr "Alle anzeigen"
204378
205−#: qml/Dash/GenericScopeView.qml:636
379+#: qml/Dash/GenericScopeView.qml:637
206380msgctxt "Label: Hint for dash search line edit"
207381msgid "Search"
208382msgstr "Suchen"
@@ -236,10 +410,6 @@ msgstr "Bewerten"
236410msgid "Add a review"
237411msgstr "Bewertung hinzufügen"
238412
239−#: qml/Dash/Previews/PreviewSharing.qml:66
240−msgid "Preview Share Item"
241−msgstr "Vorschau für zu teilendes Element"
242−
243413#: qml/Dash/PullToRefreshScopeStyle.qml:55
244414msgid "Pull to refresh…"
245415msgstr "Zum Aktualisieren ziehen …"
@@ -256,11 +426,11 @@ msgstr "Standortdaten aktivieren"
256426msgid "Manage"
257427msgstr "Verwalten"
258428
259−#: qml/Dash/ScopesList.qml:101
429+#: qml/Dash/ScopesList.qml:102
260430msgid "Home"
261431msgstr "Startseite"
262432
263−#: qml/Dash/ScopesList.qml:102
433+#: qml/Dash/ScopesList.qml:103
264434msgid "Also installed"
265435msgstr "Ebenfalls installiert"
266436
@@ -272,17 +442,29 @@ msgstr ""
272442"Ihr Gerät ist nun mit einem externen Bildschirm verbunden. Verwenden Sie das "
273443"Gerätedisplay als Touchpad, um den Mauszeiger zu steuern."
274444
275−#: qml/Greeter/CoverPage.qml:118
445+#: qml/Greeter/CoverPage.qml:127
276446msgid "Unlock"
277447msgstr "Entsperren"
278448
279−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/Greeter.qml:539
450+msgid "Try again"
451+msgstr "Erneut versuchen"
452+
453+#: qml/Greeter/LoginList.qml:63
454+msgid "Passphrase"
455+msgstr "Passwort"
456+
457+#: qml/Greeter/LoginList.qml:64
458+msgid "Passcode"
459+msgstr "PIN"
460+
461+#: qml/Greeter/LoginList.qml:259
280462msgid "Retry"
281463msgstr "Erneut versuchen"
282464
283−#: qml/Greeter/LoginList.qml:240
284−msgid "Tap to unlock"
285−msgstr "Zum Entsperren tippen"
465+#: qml/Greeter/LoginList.qml:260
466+msgid "Log In"
467+msgstr "Anmelden"
286468
287469#: qml/Greeter/NarrowView.qml:54
288470msgid "Sorry, incorrect passphrase."
@@ -312,34 +494,34 @@ msgstr ""
312494"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
313495"zurückgesetzt und alle Daten werden gelöscht."
314496
315−#: qml/Greeter/NarrowView.qml:116
497+#: qml/Greeter/NarrowView.qml:129
316498#, qt-format
317499msgid "Enter %1"
318500msgstr "%1 eingeben"
319501
320−#: qml/Greeter/NarrowView.qml:117
502+#: qml/Greeter/NarrowView.qml:130
321503msgid "Enter passphrase"
322504msgstr "Passphrase eingeben"
323505
324−#: qml/Greeter/NarrowView.qml:118
506+#: qml/Greeter/NarrowView.qml:131
325507msgid "Enter passcode"
326508msgstr "PIN eingeben"
327509
328−#: qml/Greeter/NarrowView.qml:119
510+#: qml/Greeter/NarrowView.qml:135
329511#, qt-format
330512msgid "Sorry, incorrect %1"
331513msgstr "%1 falsch"
332514
333−#: qml/Greeter/NarrowView.qml:120
515+#: qml/Greeter/NarrowView.qml:136
334516msgid "Sorry, incorrect passphrase"
335517msgstr "Das Passwort ist nicht korrekt"
336518
337−#: qml/Greeter/NarrowView.qml:121
519+#: qml/Greeter/NarrowView.qml:137
338520msgctxt "passphrase"
339521msgid "Please re-enter"
340522msgstr "Bitte erneut eingeben"
341523
342−#: qml/Greeter/NarrowView.qml:122
524+#: qml/Greeter/NarrowView.qml:138
343525msgid "Sorry, incorrect passcode"
344526msgstr "Falsches Passwort"
345527
@@ -434,34 +616,14 @@ msgstr "Zurückrufen"
434616msgid "Drag using 3 fingers any application from one window to the other"
435617msgstr "Eine Anwendung mit 3 Fingern von einem Fenster zum anderen ziehen"
436618
437−#: qml/Tutorial/TutorialBottom.qml:78
438−msgid "Swipe up to add a contact"
439−msgstr "Aufwärts wischen, um einen Kontakt hinzuzufügen"
440−
441−#: qml/Tutorial/TutorialBottom.qml:80
442−msgid "Swipe up for favorite calculations"
443−msgstr "Aufwärts wischen, um die Favoriten-Rechnungen anzuzeigen"
444−
445−#: qml/Tutorial/TutorialBottom.qml:82
446−msgid "Swipe up for recent calls"
447−msgstr "Aufwärts wischen, um die letzten Anrufe anzuzeigen"
448−
449−#: qml/Tutorial/TutorialBottom.qml:84
450−msgid "Swipe up to create a message"
451−msgstr "Aufwärts wischen, um eine Nachricht zu erstellen"
452−
453−#: qml/Tutorial/TutorialBottom.qml:85
454−msgid "Swipe up to manage the app"
455−msgstr "Aufwärts wischen, um die Anwendung zu verwalten"
456−
457−#: qml/Tutorial/TutorialLeftLong.qml:47
619+#: qml/Tutorial/TutorialLeftLong.qml:49
458620msgid "Long swipe from the left edge to open the Today scope"
459621msgstr ""
460622"Langgezogene Wischgeste von der linken Kante, um den Heute-Scope zu öffnen"
461623
462624#: qml/Tutorial/TutorialLeft.qml:47
463−msgid "Swipe from the left edge to open the launcher"
464−msgstr "Von der linken Kante wischen, um den Starter zu öffnen"
625+msgid "Short swipe from the left edge to open the launcher"
626+msgstr "Kurzes Wischen von der linken Kante öffnet den Starter"
465627
466628#: qml/Tutorial/TutorialRight.qml:55
467629msgid "Push your mouse against the right edge to view your open apps"
@@ -470,20 +632,14 @@ msgstr ""
470632"Anwendungen zu sehen"
471633
472634#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
474−msgstr ""
475−"Kurze oder langgezogene Wischgeste von der rechten Kante, um die offenen "
476−"Anwendungen zu sehen"
635+msgid "Swipe from the right edge to view your open apps"
636+msgstr "Wischen von der rechten Kante zeigt die geöffneten Anwendungen"
477637
478638#: qml/Tutorial/TutorialTop.qml:53
479−msgid "Swipe from the top right edge to open the notification bar"
639+msgid "Swipe from the top edge to access notifications and quick settings"
480640msgstr ""
481−"Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
482−
483−#: qml/Tutorial/TutorialTop.qml:54
484−msgid "Swipe from the top edge to open the notification bar"
485−msgstr ""
486−"Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
641+"Wischen von der oberen Kante zeigt Benachrichtigungen und "
642+"Schnelleinstellungen"
487643
488644#: qml/Wizard/Page.qml:54
489645msgctxt "Button: Go back one page in the Wizard"
@@ -494,15 +650,32 @@ msgstr "Zurück"
494650msgid "Language"
495651msgstr "Sprache"
496652
497−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
653+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
498654#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
499655#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
500656#: qml/Wizard/Pages/75-report-check.qml:84
501−#: qml/Wizard/Pages/passcode-desktop.qml:124
657+#: qml/Wizard/Pages/passcode-desktop.qml:141
502658#: qml/Wizard/Pages/password-set.qml:141
503659msgid "Next"
504660msgstr "Weiter"
505661
662+#: qml/Wizard/Pages/20-keyboard.qml:30
663+msgid "Select Keyboard"
664+msgstr "Tastatur wählen"
665+
666+#: qml/Wizard/Pages/20-keyboard.qml:70
667+msgid "Keyboard language"
668+msgstr "Tastatursprache"
669+
670+#: qml/Wizard/Pages/20-keyboard.qml:92
671+msgid "Keyboard layout"
672+msgstr "Tastaturlayout"
673+
674+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
675+#: qml/Wizard/Pages/sim.qml:101
676+msgid "Skip"
677+msgstr "Überspringen"
678+
506679#: qml/Wizard/Pages/30-wifi.qml:29
507680msgid "Connect to Wi‑Fi"
508681msgstr "Mit WLAN verbinden"
@@ -519,11 +692,6 @@ msgstr "Verfügbare Funknetzwerke"
519692msgid "No available Wi-Fi networks"
520693msgstr "Keine Funknetzwerke verfügbar"
521694
522−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
523−#: qml/Wizard/Pages/sim.qml:101
524−msgid "Skip"
525−msgstr "Überspringen"
526−
527695#: qml/Wizard/Pages/40-location.qml:27
528696msgid "Location Services"
529697msgstr "Standortdienste"
@@ -611,6 +779,37 @@ msgstr ""
611779msgid "Privacy policy"
612780msgstr "Datenschutzerklärung"
613781
782+#: qml/Wizard/Pages/77-system-update.qml:28
783+msgid "Update Device"
784+msgstr "Gerät aktualisieren"
785+
786+#: qml/Wizard/Pages/77-system-update.qml:55
787+msgid ""
788+"There is a system update available and ready to install. Afterwards, the "
789+"device will automatically restart."
790+msgstr ""
791+"Es ist eine Systemaktualisierung verfügbar und bereit zur Installation. "
792+"Danach wird das Gerät automatisch neu starten."
793+
794+#: qml/Wizard/Pages/77-system-update.qml:76
795+msgctxt "string identifying name of the update"
796+msgid "Ubuntu system"
797+msgstr "Ubuntu System"
798+
799+#: qml/Wizard/Pages/77-system-update.qml:83
800+#, qt-format
801+msgctxt "version of the system update"
802+msgid "Version %1"
803+msgstr "Version %1"
804+
805+#: qml/Wizard/Pages/77-system-update.qml:102
806+msgid "This could take a few minutes..."
807+msgstr "Dies kann ein paar Minuten dauern …"
808+
809+#: qml/Wizard/Pages/77-system-update.qml:116
810+msgid "Install and restart now"
811+msgstr "Jetzt installieren und neu starten"
812+
614813#: qml/Wizard/Pages/80-finished.qml:89
615814msgid "Welcome to Ubuntu"
616815msgstr "Willkommen bei Ubuntu"
@@ -661,7 +860,7 @@ msgid "Service Terms"
661860msgstr "Bedingungen des Dienstes"
662861
663862#: qml/Wizard/Pages/passcode-confirm.qml:43
664−#: qml/Wizard/Pages/passcode-desktop.qml:80
863+#: qml/Wizard/Pages/passcode-desktop.qml:96
665864msgid "Confirm passcode"
666865msgstr "PIN bestätigen"
667866
@@ -678,24 +877,24 @@ msgstr "Bitte erneut eingeben."
678877msgid "Lock Screen Passcode"
679878msgstr "Sperrbildschirm-PIN"
680879
681−#: qml/Wizard/Pages/passcode-desktop.qml:56
880+#: qml/Wizard/Pages/passcode-desktop.qml:60
682881msgid "Enter 4 numbers to setup your passcode"
683882msgstr "Geben Sie 4 Ziffern ein, um Ihre PIN einzurichten"
684883
685−#: qml/Wizard/Pages/passcode-desktop.qml:65
884+#: qml/Wizard/Pages/passcode-desktop.qml:76
686885#: qml/Wizard/Pages/passcode-set.qml:54
687886msgid "Choose passcode"
688887msgstr "PIN wählen"
689888
690−#: qml/Wizard/Pages/passcode-desktop.qml:105
889+#: qml/Wizard/Pages/passcode-desktop.qml:126
691890msgid "Passcode too short"
692891msgstr "PIN zu kurz"
693892
694−#: qml/Wizard/Pages/passcode-desktop.qml:107
893+#: qml/Wizard/Pages/passcode-desktop.qml:128
695894msgid "Passcodes match"
696895msgstr "PINs stimmen überein"
697896
698−#: qml/Wizard/Pages/passcode-desktop.qml:109
897+#: qml/Wizard/Pages/passcode-desktop.qml:130
699898msgid "Passcodes do not match"
700899msgstr "PINs stimmen nicht überein"
701900
@@ -745,26 +944,30 @@ msgid "To proceed with no SIM tap Skip."
745944msgstr "Um ohne SIM-Karte fortzufahren, Überspringen drücken."
746945
747946#: qml/Wizard/PasswordMeter.qml:87
947+msgid "Password too short"
948+msgstr "Passwort zu kurz"
949+
950+#: qml/Wizard/PasswordMeter.qml:89
748951msgid "Passwords match"
749952msgstr "Passwörter stimmen überein"
750953
751−#: qml/Wizard/PasswordMeter.qml:89
954+#: qml/Wizard/PasswordMeter.qml:91
752955msgid "Passwords do not match"
753956msgstr "Passwörter stimmen nicht überein"
754957
755−#: qml/Wizard/PasswordMeter.qml:93
958+#: qml/Wizard/PasswordMeter.qml:95
756959msgid "Strong password"
757960msgstr "Starkes Passwort"
758961
759−#: qml/Wizard/PasswordMeter.qml:95
962+#: qml/Wizard/PasswordMeter.qml:97
760963msgid "Fair password"
761964msgstr "Ausreichendes Passwort"
762965
763−#: qml/Wizard/PasswordMeter.qml:97
966+#: qml/Wizard/PasswordMeter.qml:99
764967msgid "Weak password"
765968msgstr "Schwaches Passwort"
766969
767−#: qml/Wizard/PasswordMeter.qml:99
970+#: qml/Wizard/PasswordMeter.qml:101
768971msgid "Very weak password"
769972msgstr "Sehr schwaches Passwort"
770973
@@ -1023,6 +1226,9 @@ msgstr "Sehr schwaches Passwort"
10231226#~ msgid "Swipe up from the bottom edge."
10241227#~ msgstr "Wischen Sie von der unteren Bildschirmkante nach oben."
10251228
1229+#~ msgid "Tap to unlock"
1230+#~ msgstr "Zum Entsperren tippen"
1231+
10261232#~ msgctxt "Button: Shut down the system"
10271233#~ msgid "Shut down"
10281234#~ msgstr "Ausschalten"
@@ -1092,6 +1298,37 @@ msgstr "Sehr schwaches Passwort"
10921298#~ msgid "Call back"
10931299#~ msgstr "Zurückrufen"
10941300
1301+#~ msgid "Short or long swipe from the right edge to view your open apps"
1302+#~ msgstr ""
1303+#~ "Kurze oder langgezogene Wischgeste von der rechten Kante, um die offenen "
1304+#~ "Anwendungen zu sehen"
1305+
1306+#~ msgid "Swipe up for recent calls"
1307+#~ msgstr "Aufwärts wischen, um die letzten Anrufe anzuzeigen"
1308+
1309+#~ msgid "Swipe up for favorite calculations"
1310+#~ msgstr "Aufwärts wischen, um die Favoriten-Rechnungen anzuzeigen"
1311+
1312+#~ msgid "Swipe up to manage the app"
1313+#~ msgstr "Aufwärts wischen, um die Anwendung zu verwalten"
1314+
1315+#~ msgid "Swipe up to create a message"
1316+#~ msgstr "Aufwärts wischen, um eine Nachricht zu erstellen"
1317+
1318+#~ msgid "Swipe up to add a contact"
1319+#~ msgstr "Aufwärts wischen, um einen Kontakt hinzuzufügen"
1320+
1321+#~ msgid "Swipe from the left edge to open the launcher"
1322+#~ msgstr "Von der linken Kante wischen, um den Starter zu öffnen"
1323+
10951324#~ msgid "Hover your mouse on the right edge to view your open apps"
10961325#~ msgstr ""
10971326#~ "Die Maus auf den rechten Rand bewegen, um die offenen Anwendungen zu sehen"
1327+
1328+#~ msgid "Swipe from the top right edge to open the notification bar"
1329+#~ msgstr ""
1330+#~ "Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
1331+
1332+#~ msgid "Swipe from the top edge to open the notification bar"
1333+#~ msgstr ""
1334+#~ "Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
po/el.po+300−94

This diff is too big to show here.

po/en_AU.po+330−97

This diff is too big to show here.

po/en_GB.po+331−98

This diff is too big to show here.

po/eo.po+296−93

This diff is too big to show here.

po/es.po+336−99

This diff is too big to show here.

po/eu.po+300−94

This diff is too big to show here.

po/fa.po+335−101

This diff is too big to show here.

po/fi.po+334−99

This diff is too big to show here.

po/fo.po+378−171

This diff is too big to show here.

po/fr.po+342−104

This diff is too big to show here.

po/ga.po+300−94

This diff is too big to show here.

po/gd.po+340−100

This diff is too big to show here.

po/gl.po+334−97

This diff is too big to show here.

po/gv.po+296−93

This diff is too big to show here.

po/he.po+300−94

This diff is too big to show here.

po/hi.po+296−93

This diff is too big to show here.

po/hr.po+331−98

This diff is too big to show here.

po/hu.po+335−99

This diff is too big to show here.

po/hy.po+296−93

This diff is too big to show here.

po/ia.po+335−98

This diff is too big to show here.

po/id.po+296−93

This diff is too big to show here.

po/is.po+296−93

This diff is too big to show here.

po/it.po+331−98

This diff is too big to show here.

po/ja.po+296−93

This diff is too big to show here.

po/km.po+296−93

This diff is too big to show here.

po/kn.po+296−93

This diff is too big to show here.

po/ko.po+300−94

This diff is too big to show here.

po/ku.po+296−93

This diff is too big to show here.

po/ky.po+296−93

This diff is too big to show here.

po/lo.po+296−93

This diff is too big to show here.

po/lt.po+296−93

This diff is too big to show here.

po/lv.po+300−94

This diff is too big to show here.

po/ml.po+296−93

This diff is too big to show here.

po/mr.po+296−93

This diff is too big to show here.

po/ms.po+336−98

This diff is too big to show here.

po/my.po+296−93

This diff is too big to show here.

po/nb.po+333−100

This diff is too big to show here.

po/ne.po+296−93

This diff is too big to show here.

po/nl.po+326−96

This diff is too big to show here.

po/nn.po+296−93

This diff is too big to show here.

po/oc.po+309−94

This diff is too big to show here.

po/or.po+296−93

This diff is too big to show here.

po/pa.po+300−94

This diff is too big to show here.

po/pl.po+339−102

This diff is too big to show here.

po/pt.po+336−99

This diff is too big to show here.

po/pt_BR.po+300−94

This diff is too big to show here.

po/ro.po+300−94

This diff is too big to show here.

po/ru.po+323−102

This diff is too big to show here.

po/shn.po+296−93

This diff is too big to show here.

po/si.po+296−93

This diff is too big to show here.

po/sk.po+336−101

This diff is too big to show here.

po/sl.po+330−97

This diff is too big to show here.

po/sq.po+300−94

This diff is too big to show here.

po/sr.po+335−99

This diff is too big to show here.

po/sv.po+336−102

This diff is too big to show here.

po/sw.po+300−94

This diff is too big to show here.

po/ta.po+296−93

This diff is too big to show here.

po/te.po+296−93

This diff is too big to show here.

po/th.po+296−93

This diff is too big to show here.

po/tr.po+300−94

This diff is too big to show here.

po/ug.po+319−113

This diff is too big to show here.

po/uk.po+331−98

This diff is too big to show here.

po/unity8.pot+314−109

This diff is too big to show here.

po/ur.po+296−93

This diff is too big to show here.

po/uz.po+296−93

This diff is too big to show here.

po/vi.po+296−93

This diff is too big to show here.

po/wo.po+300−94

This diff is too big to show here.

po/xh.po+296−93

This diff is too big to show here.

po/zh_CN.po+339−106

This diff is too big to show here.

po/zh_HK.po+296−93

This diff is too big to show here.

po/zh_TW.po+312−106

This diff is too big to show here.

qml/Components/DelayedLockscreen.qml+1

This diff is too big to show here.

qml/Components/Dialogs.qml+13−8

This diff is too big to show here.

qml/Components/FadingLabel.qmlnew file+42

This diff is too big to show here.

qml/Components/InputMethod.qml+8−44

This diff is too big to show here.

qml/Components/KeyboardShortcutsOverlay.qmlnew file+334

This diff is too big to show here.

qml/Components/KeymapSwitcher.qml+27−1

This diff is too big to show here.

qml/Components/LazyImage.qml+3−1

This diff is too big to show here.

qml/Components/ListItems/graphics/ListItemDividerHorizontal@18.png

Binary file not shown.

qml/Components/Lockscreen.qml+8

This diff is too big to show here.

qml/Components/MediaServices/MediaServices.qmlnew file+386

This diff is too big to show here.

qml/Components/MediaServices/MediaServicesControls.qmlnew file+192

This diff is too big to show here.

qml/Components/MediaServices/MediaServicesHeader.qmlnew file+71

This diff is too big to show here.

qml/Components/MediaServices/VideoPlayer.qmlnew file+155

This diff is too big to show here.

qml/Components/MediaServices/VideoPlayerControls.qmlnew file+158

This diff is too big to show here.

qml/Components/NotificationAudio.qml+20−3

This diff is too big to show here.

qml/Components/PanelState/PanelState.qml+1

This diff is too big to show here.

qml/Components/PassphraseLockscreen.qml+4

This diff is too big to show here.

qml/Components/PhysicalKeysMapper.qml+2−22

This diff is too big to show here.

qml/Components/PinLockscreen.qml+4

This diff is too big to show here.

qml/Dash/Previews/PreviewSharing.qml → qml/Components/SharingPicker.qmlrenamed+2−14

This diff is too big to show here.

qml/Components/WindowControlButtons.qml+23−27

This diff is too big to show here.

qml/Components/graphics/close@20.png

Binary file not shown.

qml/Components/graphics/icon_star_empty@20.png

Binary file not shown.

qml/Components/graphics/icon_star_full@20.png

Binary file not shown.

qml/Components/graphics/icon_star_half@20.png

Binary file not shown.

qml/Components/graphics/icon_star_off@20.png

Binary file not shown.

qml/Components/graphics/icon_star_on@20.png

Binary file not shown.

qml/Components/graphics/non-selected@18.png

Binary file not shown.

qml/Components/graphics/window-close.svg+164−14

This diff is too big to show here.

qml/Components/graphics/window-maximize.svg+164−12

This diff is too big to show here.

qml/Components/graphics/window-minimize.svg+164−13

This diff is too big to show here.

qml/Components/graphics/window-window.svgnew file+41

This diff is too big to show here.

qml/Dash/CardCarousel.qml+1

This diff is too big to show here.

qml/Dash/CardTool.qml+4−3

This diff is too big to show here.

qml/Dash/DashApplication.qml+16−5

This diff is too big to show here.

qml/Dash/DashNavigationList.qml+48−45

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+49−22

This diff is too big to show here.

qml/Dash/Filters/FilterExpandableWidget.qml+1

This diff is too big to show here.

qml/Dash/Filters/FilterOptionSelector.qml+2

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+12−10

This diff is too big to show here.

qml/Dash/Previews/Preview.qml+17

This diff is too big to show here.

qml/Dash/Previews/PreviewImageGallery.qml+3

This diff is too big to show here.

qml/Dash/Previews/PreviewInlineVideo.qmlnew file+65

This diff is too big to show here.

qml/Dash/Previews/PreviewMediaToolbar.qml+25−5

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingEdit.qml+4−1

This diff is too big to show here.

qml/Dash/Previews/PreviewWidget.qml+3

This diff is too big to show here.

qml/Dash/Previews/PreviewWidgetFactory.qml+11−1

This diff is too big to show here.

qml/Dash/Previews/PreviewZoomableImage.qml+1

This diff is too big to show here.

qml/Dash/ScopesList.qml+1

This diff is too big to show here.

qml/Dash/graphics/dash_divider_top_darkgrad@27.png

Binary file not shown.

qml/Dash/graphics/dash_divider_top_lightgrad@27.png

Binary file not shown.

qml/Dash/graphics/header_handlearrow2@27.png

Binary file not shown.

qml/Dash/graphics/header_handlearrow@27.png

Binary file not shown.

qml/Dash/graphics/icon_clear@20.png

Binary file not shown.

qml/Dash/graphics/icon_search_active@20.png

Binary file not shown.

qml/Dash/graphics/icon_search_inactive@20.png

Binary file not shown.

qml/Dash/graphics/navigation_shadow@18.png

Binary file not shown.

qml/Dash/graphics/navigation_shadow_light@18.png

Binary file not shown.

qml/Dash/graphics/overview_hint@27.png

Binary file not shown.

qml/Dash/graphics/pagination_dot_off@30.png

Binary file not shown.

qml/Dash/graphics/pagination_dot_on@30.png

Binary file not shown.

qml/Dash/graphics/paper.png

Binary file not shown.

qml/Dash/graphics/pixel.png

Binary file not shown.

qml/Dash/graphics/play_button@18.png

Binary file not shown.

qml/Dash/graphics/play_button_active@18.png

Binary file not shown.

qml/Dash/graphics/play_button_active_big@20.png

Binary file not shown.

qml/Dash/graphics/play_button_big@20.png

Binary file not shown.

qml/Dash/graphics/tabbarchevron@27.png

Binary file not shown.

qml/Dash/graphics/tablet/icon_close_preview@20.png

Binary file not shown.

qml/Dash/graphics/tooltip_arrow@27.png

Binary file not shown.

qml/Greeter/CoverPage.qml+23−1

This diff is too big to show here.

qml/Greeter/FullLightDMImpl.qmlnew file+28

This diff is too big to show here.

qml/Greeter/Greeter.qml+192−70

This diff is too big to show here.

qml/Greeter/GreeterPrompt.qmlnew file+197

This diff is too big to show here.

qml/Greeter/IntegratedLightDMImpl.qml+1−1

This diff is too big to show here.

qml/Greeter/LightDM.qml → qml/Greeter/LightDMService.qmlrenamed+14−3

This diff is too big to show here.

qml/Greeter/LoginList.qml+77−81

This diff is too big to show here.

qml/Greeter/NarrowView.qml+20−3

This diff is too big to show here.

qml/Greeter/WideView.qml+11−4

This diff is too big to show here.

qml/Greeter/graphics/dot_empty.png

Binary file not shown.

qml/Greeter/graphics/dot_filled.png

Binary file not shown.

qml/Greeter/graphics/dot_pointer.png

Binary file not shown.

qml/Greeter/graphics/icon_arrow.png

Binary file not shown.

qml/Greeter/graphics/infographic_circle_back.png

Binary file not shown.

qml/Greeter/qmldirnew file+1

This diff is too big to show here.

qml/Launcher/Launcher.qml+2

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+4−8

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+6−2

This diff is too big to show here.

qml/Launcher/graphics/divider-line.png

Binary file not shown.

qml/Launcher/graphics/focused_app_arrow@30.png

Binary file not shown.

qml/Launcher/graphics/home@18.png

Binary file not shown.

qml/Launcher/graphics/quicklist_tooltip@30.png

Binary file not shown.

qml/Notifications/Notification.qml+29−29

This diff is too big to show here.

qml/Notifications/NotificationMenuItemFactory.qml−3

This diff is too big to show here.

qml/Notifications/Notifications.qml+14−24

This diff is too big to show here.

qml/OrientedShell.qml+10−3

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qml+13−2

This diff is too big to show here.

qml/Panel/Indicators/MenuItemFactory.qml+65

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+3−1

This diff is too big to show here.

qml/Panel/Panel.qml+5−2

This diff is too big to show here.

qml/Panel/graphics/rectangular_dropshadow@30.png

Binary file not shown.

qml/Rotation/HalfLoopRotationAnimation.qml+1−1

This diff is too big to show here.

qml/Rotation/ImmediateRotationAction.qml+1−1

This diff is too big to show here.

qml/Rotation/NinetyRotationAnimation.qml+1−1

This diff is too big to show here.

qml/Rotation/UpdateShellTransformations.qml+4−4

This diff is too big to show here.

qml/Shell.qml+78−21

This diff is too big to show here.

qml/Stages/AbstractStage.qml+10

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+32−9

This diff is too big to show here.

qml/Stages/DecoratedWindow.qml+41−13

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+2

This diff is too big to show here.

qml/Stages/DesktopStage.qml+90−23

This diff is too big to show here.

qml/Stages/OrientationChangeAnimation.qml+30−6

This diff is too big to show here.

qml/Stages/PhoneStage.qml+9−3

This diff is too big to show here.

qml/Stages/ShimStage.qml → qml/Stages/ResizeGrip.qmlrenamed+22−19

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+79−92

This diff is too big to show here.

qml/Stages/TabletSideStageTouchGesture.qml+3

This diff is too big to show here.

qml/Stages/TabletStage.qml+27−14

This diff is too big to show here.

qml/Stages/WindowControlsOverlay.qmlnew file+219

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+28−6

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+15−15

This diff is too big to show here.

qml/Stages/graphics/PageHeaderBaseDividerBottom@18.png

Binary file not shown.

qml/Stages/graphics/PageHeaderBaseDividerLight@18.png

Binary file not shown.

qml/Stages/graphics/arrows-centre.pngnew file

Binary file not shown.

qml/Stages/graphics/arrows.pngnew file

Binary file not shown.

qml/Stages/graphics/dropshadow2gu@30.png

Binary file not shown.

qml/Stages/graphics/sidestage_handle@20.png

Binary file not shown.

qml/Tutorial/InactivityTimer.qml+26−10

This diff is too big to show here.

qml/Tutorial/Tutorial.qml+7−6

This diff is too big to show here.

qml/Tutorial/TutorialBottom.qmldeleted−124

This diff is too big to show here.

qml/Tutorial/TutorialContent.qml+51−134

This diff is too big to show here.

qml/Tutorial/TutorialLeft.qml+2−2

This diff is too big to show here.

qml/Tutorial/TutorialLeftLong.qml+3−1

This diff is too big to show here.

qml/Tutorial/TutorialPage.qml+2−2

This diff is too big to show here.

qml/Tutorial/TutorialRight.qml+2−2

This diff is too big to show here.

qml/Tutorial/TutorialTop.qml+2−3

This diff is too big to show here.

qml/Tutorial/graphics/background1.png

Binary file not shown.

qml/Tutorial/graphics/background2.png

Binary file not shown.

qml/Wizard/Page.qml+1−1

This diff is too big to show here.

qml/Wizard/Pages/10-welcome.qml+19−5

This diff is too big to show here.

qml/Wizard/Pages/20-keyboard.qmlnew file+160

This diff is too big to show here.

qml/Wizard/Pages/30-wifi.qml+10−5

This diff is too big to show here.

qml/Wizard/Pages/77-system-update.qmlnew file+156

This diff is too big to show here.

qml/Wizard/Pages/data/Desktop_header_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Desktop_splash_screen_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Phone_header_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Phone_splash_screen_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Tick@30.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/map.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/pin.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_0.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_13.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.png

Binary file not shown.

qml/Wizard/Pages/passcode-desktop.qml+27−10

This diff is too big to show here.

qml/Wizard/PasswordMeter.qml+3−1

This diff is too big to show here.

qml/Wizard/Wizard.qml+6−2

This diff is too big to show here.

qml/Wizard/WizardItemSelector.qmlnew file+128

This diff is too big to show here.

qml/graphics/dropshadow_left@20.png

Binary file not shown.

qml/graphics/dropshadow_right@20.png

Binary file not shown.

run.shdeleted−70

This diff is too big to show here.

run_on_device.shdeleted−164

This diff is too big to show here.

src/CMakeLists.txt+1

This diff is too big to show here.

src/Dash/main.cpp+23−21

This diff is too big to show here.

src/SecondaryWindow.cpp+1−1

This diff is too big to show here.

src/ShellApplication.cpp+11−1

This diff is too big to show here.

src/UnixSignalHandler.cpp+3−5

This diff is too big to show here.

src/main.cpp+2

This diff is too big to show here.

tests/CMakeLists.txt+7−1

This diff is too big to show here.

tests/autopilot/unity8/fixture_setup.py+1−1

This diff is too big to show here.

tests/autopilot/unity8/greeter/tests/test_args.py−5

This diff is too big to show here.

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

This diff is too big to show here.

tests/data/unity/backgrounds/blue.png

Binary file not shown.

tests/data/unity/backgrounds/red.png

Binary file not shown.

tests/graphics/applicationIcons/browser@18.png

Binary file not shown.

tests/graphics/applicationIcons/calendar@18.png

Binary file not shown.

tests/graphics/applicationIcons/camera@18.png

Binary file not shown.

tests/graphics/applicationIcons/contacts-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/dash.png

Binary file not shown.

tests/graphics/applicationIcons/dialer-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/evernote@18.png

Binary file not shown.

tests/graphics/applicationIcons/facebook@18.png

Binary file not shown.

tests/graphics/applicationIcons/gallery@18.png

Binary file not shown.

tests/graphics/applicationIcons/gmail@18.png

Binary file not shown.

tests/graphics/applicationIcons/libreoffice@18.png

Binary file not shown.

tests/graphics/applicationIcons/map@18.png

Binary file not shown.

tests/graphics/applicationIcons/messages-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/notepad@18.png

Binary file not shown.

tests/graphics/applicationIcons/pinterest@18.png

Binary file not shown.

tests/graphics/applicationIcons/soundcloud@18.png

Binary file not shown.

tests/graphics/applicationIcons/system-settings@18.png

Binary file not shown.

tests/graphics/applicationIcons/twitter@18.png

Binary file not shown.

tests/graphics/applicationIcons/weather@18.png

Binary file not shown.

tests/graphics/applicationIcons/wikipedia@18.png

Binary file not shown.

tests/graphics/applicationIcons/youtube@18.png

Binary file not shown.

tests/graphics/avatars/amanda@12.png

Binary file not shown.

tests/graphics/avatars/anna_olsson@12.png

Binary file not shown.

tests/graphics/avatars/funky@12.png

Binary file not shown.

tests/graphics/clock@18.png

Binary file not shown.

tests/mocks/AccountsService/AccountsService.cpp+24

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.h+17−1

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypesdeleted−41

This diff is too big to show here.

tests/mocks/Biometryd/CMakeLists.txtnew file+14

This diff is too big to show here.

tests/mocks/Biometryd/MockBiometryd.cppnew file+43

This diff is too big to show here.

tests/mocks/Biometryd/MockBiometryd.hnew file+50

This diff is too big to show here.

tests/mocks/Biometryd/MockDevice.cppnew file+29

This diff is too big to show here.

tests/mocks/Biometryd/MockDevice.hnew file+40

This diff is too big to show here.

tests/mocks/Biometryd/MockIdentifier.cppnew file+28

This diff is too big to show here.

tests/mocks/Biometryd/MockIdentifier.hnew file+36

This diff is too big to show here.

tests/mocks/Biometryd/MockObserver.cppnew file+22

This diff is too big to show here.

tests/mocks/Biometryd/MockObserver.hnew file+37

This diff is too big to show here.

tests/mocks/Biometryd/MockOperation.cppnew file+56

This diff is too big to show here.

tests/mocks/Biometryd/MockOperation.hnew file+48

This diff is too big to show here.

tests/mocks/Biometryd/plugin.cppnew file+41

This diff is too big to show here.

tests/mocks/Biometryd/plugin.hnew file+31

This diff is too big to show here.

tests/mocks/Biometryd/qmldirnew file+3

This diff is too big to show here.

tests/mocks/CMakeLists.txt+2−1

This diff is too big to show here.

tests/mocks/GSettings.1.0/GSettings.qmltypesdeleted−42

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.cpp+1−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/qmldirdeleted−3

This diff is too big to show here.

tests/mocks/LightDM/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes → tests/mocks/LightDM/IntegratedLightDM.qmltypesrenamed

The content is the same.

tests/mocks/IntegratedLightDM/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/CMakeLists.txtrenamed+9−7

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockGreeter.cpp → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpprenamed+16

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockGreeter.h → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.hrenamed+5

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.cppnew file+37

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.hnew file+34

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockUsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.cpprenamed

The content is the same.

tests/mocks/IntegratedLightDM/MockUsersModel.h → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.hrenamed

The content is the same.

tests/mocks/IntegratedLightDM/QLightDM/Greeter → tests/mocks/LightDM/IntegratedLightDM/QLightDM/Greeterrenamed

The content is the same.

tests/mocks/LightDM/IntegratedLightDM/QLightDM/SessionsModelnew file+17

This diff is too big to show here.

tests/mocks/IntegratedLightDM/QLightDM/UsersModel → tests/mocks/LightDM/IntegratedLightDM/QLightDM/UsersModelrenamed

The content is the same.

tests/mocks/IntegratedLightDM/liblightdm/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txtrenamed+4−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/Greeter.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpprenamed+9−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/Greeter.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.hrenamed+1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpprenamed

The content is the same.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.hrenamed+1

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cppnew file+99

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.hnew file+72

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cppnew file+73

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.hnew file+59

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpprenamed+4−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.hrenamed+2−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpprenamed+29−23

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.hrenamed+2−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/plugin.cpp → tests/mocks/LightDM/IntegratedLightDM/plugin.cpprenamed+15−4

This diff is too big to show here.

tests/mocks/IntegratedLightDM/plugin.h → tests/mocks/LightDM/IntegratedLightDM/plugin.hrenamed+1−1

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Lights/Lights.qmltypesdeleted−45

This diff is too big to show here.

tests/mocks/MeeGo/QOfono/QOfono.qmltypesdeleted−30

This diff is too big to show here.

tests/mocks/Powerd/Powerd.qmltypesdeleted−39

This diff is too big to show here.

tests/mocks/QMenuModel/QMenuModel.qmltypesdeleted−111

This diff is too big to show here.

tests/mocks/QtMultimedia/CMakeLists.txt+8−2

This diff is too big to show here.

tests/mocks/QtMultimedia/QtMultimedia.qmltypesdeleted−62

This diff is too big to show here.

tests/mocks/QtMultimedia/VideoSurface.qmlnew file+111

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cppdeleted−132

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.hdeleted−103

This diff is too big to show here.

tests/mocks/QtMultimedia/mediaplayer.cppnew file+318

This diff is too big to show here.

tests/mocks/QtMultimedia/mediaplayer.hnew file+223

This diff is too big to show here.

tests/mocks/QtMultimedia/plugin.cpp+7−3

This diff is too big to show here.

tests/mocks/QtMultimedia/videooutput.cppnew file+127

This diff is too big to show here.

tests/mocks/QtMultimedia/videooutput.hnew file+52

This diff is too big to show here.

tests/mocks/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypesdeleted−60

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/Payments.qmltypesdeleted−44

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/MockSystemImage.cpp+24−1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/MockSystemImage.h+22−2

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/SystemImage.qmltypesdeleted−20

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/LanguagePlugin.qmltypesdeleted−10

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qml+3−2

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/SecurityPrivacy.qmltypesdeleted−39

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/Telephony.qmltypesdeleted−58

This diff is too big to show here.

tests/mocks/Ubuntu/Thumbnailer/Thumbnailer.qmltypesdeleted−17

This diff is too big to show here.

tests/mocks/Unity/Application/Application.qmltypesdeleted−517

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.cpp+29−35

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+18−11

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.cpp+26

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.h+10

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+37−10

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.h+2

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceListModel.cpp+13−3

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceListModel.h+1

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.cppdeleted−58

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.hdeleted−57

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.cpp+20−1

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.h+4−1

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp−8

This diff is too big to show here.

tests/mocks/Unity/Application/resources/VirtualKeyboard.qml+1−6

This diff is too big to show here.

tests/mocks/Unity/Application/resources/screenshots/browser@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/camera@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/dialer@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/facebook@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/gallery@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/libreoffice@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/map@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/music@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/twitter@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/unity8-dash@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/vkb_portrait.png

Binary file not shown.

tests/mocks/Unity/Application/resources/vkb_portrait.png

Binary file not shown.

tests/mocks/Unity/Connectivity/Connectivity.qmltypesdeleted−20

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/DashCommunicator.qmltypesdeleted−46

This diff is too big to show here.

tests/mocks/Unity/Indicators/CMakeLists.txt−2

This diff is too big to show here.

tests/mocks/Unity/Indicators/Indicators.qmltypesdeleted−232

This diff is too big to show here.

tests/mocks/Unity/Indicators/IndicatorsModel.qml+31−5

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeindicatorsmodeldata.js+1−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Launcher/Launcher.qmltypesdeleted−187

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherItem.cpp+14

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherItem.h+3

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherModel.cpp+8

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherModel.h+1−1

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotification.cpp+15

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotification.h+5

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationModel.cpp+4−6

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationModel.h+2−4

This diff is too big to show here.

tests/mocks/Unity/Notifications/Notifications.qmltypesdeleted−149

This diff is too big to show here.

tests/mocks/Unity/Unity.qmltypesdeleted−469

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectorfilter.cpp+5

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectorfilter.h+2

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectoroptions.cpp+13

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectoroptions.h+2

This diff is too big to show here.

tests/mocks/Unity/fake_previewmodel.cpp+1−1

This diff is too big to show here.

tests/mocks/Unity/fake_scope.cpp+11−2

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+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_scopesoverview.cpp+1−1

This diff is too big to show here.

tests/mocks/Utils/CMakeLists.txt+5−1

This diff is too big to show here.

tests/mocks/Utils/Utils.qmltypesdeleted−178

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.cpp+2−2

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+1−1

This diff is too big to show here.

tests/mocks/Wizard/CMakeLists.txt+6−3

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.cpp+8

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.h+4

This diff is too big to show here.

tests/mocks/Wizard/Wizard.qmltypesdeleted−37

This diff is too big to show here.

tests/mocks/Wizard/mockplugin.cpp+2

This diff is too big to show here.

tests/mocks/libusermetrics/libusermetricsoutput/ColorTheme.hdeleted−1

This diff is too big to show here.

tests/mocks/libusermetrics/libusermetricsoutput/UserMetrics.hdeleted−1

This diff is too big to show here.

tests/plugins/AccountsService/CMakeLists.txt−5

This diff is too big to show here.

tests/plugins/CMakeLists.txt+1−1

This diff is too big to show here.

tests/plugins/Cursor/tst_Cursor.qml+8−1

This diff is too big to show here.

tests/plugins/Dash/CMakeLists.txt+4

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res+15−29

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res.cardcreator+9−26

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res+17−31

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res.cardcreator+9−26

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res+15−29

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res.cardcreator+9−26

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/2.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res+16−29

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res.cardcreator+11−27

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res+16−30

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res.cardcreator+10−27

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/9.res.cardcreator−1

This diff is too big to show here.

tests/plugins/Dash/horizontaljournaltest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+7−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertestsection.qml+12−1

This diff is too big to show here.

tests/plugins/Dash/organicgridtest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/verticaljournaltest.cpp+63−4

This diff is too big to show here.

tests/plugins/LightDM/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/CMakeLists.txt → tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txtrenamed+36−13

This diff is too big to show here.

tests/plugins/IntegratedLightDM/dbus.cpp → tests/plugins/LightDM/IntegratedLightDM/dbus.cpprenamed

The content is the same.

tests/plugins/IntegratedLightDM/greeter.qml → tests/plugins/LightDM/IntegratedLightDM/greeter.qmlrenamed+1−1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/integrated.cpp → tests/plugins/LightDM/IntegratedLightDM/integrated.cpprenamed

The content is the same.

tests/plugins/IntegratedLightDM/pam.cpp → tests/plugins/LightDM/IntegratedLightDM/pam.cpprenamed

The content is the same.

tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cppnew file+96

This diff is too big to show here.

tests/plugins/IntegratedLightDM/usersmodel.cpp → tests/plugins/LightDM/IntegratedLightDM/usersmodel.cpprenamed

The content is the same.

tests/plugins/Ubuntu/Gestures/CMakeLists.txt+4−2

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.cpp+3−3

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.h+4−5

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_AxisVelocityCalculator.cpp+1−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+1−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+3−1

This diff is too big to show here.

tests/plugins/Unity/Launcher/CMakeLists.txt+1−1

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+43−4

This diff is too big to show here.

tests/plugins/Unity/Session/CMakeLists.txt+29−1

This diff is too big to show here.

tests/plugins/Unity/Session/LightDMServer.cppnew file+29

This diff is too big to show here.

tests/plugins/Unity/Session/LightDMServer.hnew file+38

This diff is too big to show here.

tests/plugins/Unity/Session/LogindServer.cppnew file+33

This diff is too big to show here.

tests/plugins/Unity/Session/LogindServer.hnew file+43

This diff is too big to show here.

tests/plugins/Unity/Session/interfaces.xmlnew file+17

This diff is too big to show here.

tests/plugins/Unity/Session/server.cppnew file+50

This diff is too big to show here.

tests/plugins/Unity/Session/sessionbackendtest.cpp+15−1

This diff is too big to show here.

tests/plugins/Wizard/tst_pagelist.cpp+30−1

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+3−1

This diff is too big to show here.

tests/qmltests/Components/CMakeLists.txt+5−1

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle.cpp+2−2

This diff is too big to show here.

tests/qmltests/Components/tst_EdgeDragEvaluator.cpp+2−2

This diff is too big to show here.

tests/qmltests/Components/tst_LazyImage/portrait.png

Binary file not shown.

tests/qmltests/Components/tst_LazyImage/square.png

Binary file not shown.

tests/qmltests/Components/tst_LazyImage/wide.png

Binary file not shown.

tests/qmltests/Components/tst_Lockscreen.qml+20−1

This diff is too big to show here.

tests/qmltests/Components/tst_MediaServices.qmlnew file+230

This diff is too big to show here.

tests/qmltests/Components/tst_PhysicalKeysMapper.qml+12−21

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewSharing.qml → tests/qmltests/Components/tst_SharingPicker.qmlrenamed+8−8

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+8−10

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+23−4

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+1−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewInlineVideo.qmlnew file+114

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qml+3−3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingDisplayCreationRanges.qml+51−15

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingEdit.qml+3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+17−16

This diff is too big to show here.

tests/qmltests/Dash/artwork/avatar@12.png

Binary file not shown.

tests/qmltests/Dash/artwork/background.png

Binary file not shown.

tests/qmltests/Dash/artwork/checkers.png

Binary file not shown.

tests/qmltests/Dash/artwork/emblem.png

Binary file not shown.

tests/qmltests/Dash/artwork/music-player-design.png

Binary file not shown.

tests/qmltests/Dash/tst_Card.qml+1−1

This diff is too big to show here.

tests/qmltests/Dash/tst_CardCarousel.qml+24

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+84−73

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+50−7

This diff is too big to show here.

tests/qmltests/Dash/tst_DashPageHeader.qml+44−3

This diff is too big to show here.

tests/qmltests/Dash/tst_DashShell.qml+7−1

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+35

This diff is too big to show here.

tests/qmltests/Greeter/TestView.qml+10−3

This diff is too big to show here.

tests/qmltests/Greeter/tst_Greeter.qml+202−23

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Greeter/tst_NarrowView.qml+23−2

This diff is too big to show here.

tests/qmltests/Greeter/tst_WideView.qml+107−34

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+72−14

This diff is too big to show here.

tests/qmltests/Notifications/Notification.qml+1

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+79−29

This diff is too big to show here.

tests/qmltests/Notifications/tst_OptionToggle.qml+1−16

This diff is too big to show here.

tests/qmltests/Notifications/tst_SwipeToAct.qml+4−18

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+7−23

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItemRow.qml+26−1

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsBar.qml+3−3

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qml+33−4

This diff is too big to show here.

tests/qmltests/Stages/ApplicationCheckBox.qml+1−1

This diff is too big to show here.

tests/qmltests/Stages/SurfaceManagerControls.qml+1−1

This diff is too big to show here.

tests/qmltests/Stages/tst_ApplicationWindow.qml+39−11

This diff is too big to show here.

tests/qmltests/Stages/tst_DesktopStage.qml+160

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+3−3

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qml+115−12

This diff is too big to show here.

tests/qmltests/Stages/tst_TabletStage.qml+168−38

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+36−34

This diff is too big to show here.

tests/qmltests/Tutorial/tst_Tutorial.qml+176−210

This diff is too big to show here.

tests/qmltests/UnityLogo.png

Binary file not shown.

tests/qmltests/Wizard/tst_Wizard.qml+47−2

This diff is too big to show here.

tests/qmltests/tst_DisabledScreenNotice.qml+1−1

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+99−52

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+149−42

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+8−6

This diff is too big to show here.

tests/qmltests/utils/Unity/Test/tst_UnityTest.qml+31

This diff is too big to show here.

tests/utils/modules/Unity/Test/CMakeLists.txt+6−1

This diff is too big to show here.

tests/utils/modules/Unity/Test/Test.qmltypesdeleted−60

This diff is too big to show here.

tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+8−3

This diff is too big to show here.

tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+4−2

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.cpp+32−4

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.h+1

This diff is too big to show here.

tools/registry-tracker.cpp+2−2

This diff is too big to show here.

tools/scopetool.cpp+6−2

This diff is too big to show here.