on xenial help sign in
Merge unity8
commit6b3c03e0280a6dcfce74ca9c8baedef9c7dd7037 authorAlbert Astals Cid <albert.astals@canonical.com> dateMon 20 Jun 2016, 09:11 (10 years ago) parent64d3f31e9a27e4
457 files changed+25643−20491
CMakeLists.txt+13−2 data/unity8.conf+12−2 debian/changelog+151 debian/control+6−3 debian/rules+4 debian/unity8-private.install−1 debian/unity8.install+1 debian/usr.bin.unity8-dash+21 libs/CMakeLists.txt−1 libs/UbuntuGestures/CMakeLists.txt−41 libs/UbuntuGestures/CandidateInactivityTimer.cpp−46 libs/UbuntuGestures/CandidateInactivityTimer.h−51 libs/UbuntuGestures/DebugHelpers.cpp−95 libs/UbuntuGestures/DebugHelpers.h−31 libs/UbuntuGestures/Pool.h−124 libs/UbuntuGestures/TimeSource.cpp−49 libs/UbuntuGestures/TimeSource.h−64 libs/UbuntuGestures/Timer.cpp−152 libs/UbuntuGestures/Timer.h−122 libs/UbuntuGestures/TouchOwnershipEvent.cpp−35 libs/UbuntuGestures/TouchOwnershipEvent.h−50 libs/UbuntuGestures/TouchRegistry.cpp−553 libs/UbuntuGestures/TouchRegistry.h−201 libs/UbuntuGestures/UbuntuGesturesGlobal.h−23 libs/UbuntuGestures/UnownedTouchEvent.cpp−39 libs/UbuntuGestures/UnownedTouchEvent.h−45 plugins/AccountsService/AccountsService.qmltypes−41 plugins/Cursor/CMakeLists.txt+2−1 plugins/Cursor/Cursor.qml+21−5 plugins/Cursor/Cursor.qmltypes−78 plugins/Cursor/CursorImageInfo.cpp+96 plugins/Cursor/CursorImageInfo.h+72 plugins/Cursor/CursorImageProvider.cpp+51−22 plugins/Cursor/CursorImageProvider.h+12−4 plugins/Cursor/MousePointer.cpp+37−27 plugins/Cursor/MousePointer.h+9−7 plugins/Cursor/plugin.cpp+4−2 plugins/Cursor/qmldir+1−1 plugins/Dash/AudioProgressBar.qml+1−1 plugins/Dash/CardCreator.js+127−76 plugins/Dash/CardCreatorCache.qml+3−3 plugins/Dash/Dash.qmltypes−100 plugins/Dash/ScopeStyle.qml+1−1 plugins/Dash/listviewwithpageheader.cpp+20−21 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/IntegratedLightDM.qmltypes−251 plugins/Lights/Lights.qmltypes−45 plugins/Powerd/Powerd.qmltypes−39 plugins/SessionBroadcast/SessionBroadcast.qmltypes−19 plugins/UInput/UInput.qmltypes−44 plugins/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypes−60 plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+1−1 plugins/Ubuntu/Gestures/CMakeLists.txt+5−5 plugins/Ubuntu/Gestures/Damper.cpp−24 plugins/Ubuntu/Gestures/Damper.h−89 plugins/Ubuntu/Gestures/Direction.h+1 plugins/Ubuntu/Gestures/DirectionalDragArea.cpp−932 plugins/Ubuntu/Gestures/DirectionalDragArea.h−143 plugins/Ubuntu/Gestures/DirectionalDragArea_p.h−169 plugins/Ubuntu/Gestures/FloatingFlickable.cpp−150 plugins/Ubuntu/Gestures/FloatingFlickable.h−86 plugins/Ubuntu/Gestures/Gestures.qmltypes−209 plugins/Ubuntu/Gestures/MouseEventGenerator.cpp+64 plugins/Ubuntu/Gestures/MouseEventGenerator.h+48 plugins/Ubuntu/Gestures/PressedOutsideNotifier.h+1−1 plugins/Ubuntu/Gestures/TouchDispatcher.cpp+1−1 plugins/Ubuntu/Gestures/TouchGate.cpp+2−2 plugins/Ubuntu/Gestures/TouchGestureArea.cpp+16−15 plugins/Ubuntu/Gestures/TouchGestureArea.h+9−10 plugins/Ubuntu/Gestures/plugin.cpp+3−5 plugins/Ubuntu/Payments/Payments.qmltypes−43 plugins/Ubuntu/SystemImage/SystemImage.qmltypes−19 plugins/Unity/Connectivity/Connectivity.qmltypes−19 plugins/Unity/DashCommunicator/DashCommunicator.qmltypes−47 plugins/Unity/Indicators/Indicators.qmltypes−264 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/InputInfo/plugin.h+1−1 plugins/Unity/InputInfo/qdeclarativeinputdevicemodel_p.h+3−3 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/Session.qmltypes−85 plugins/Unity/Session/dbusunitysessionservice.cpp+7 plugins/Utils/Utils.qmltypes−175 plugins/Utils/WindowInputMonitor.cpp+8−8 plugins/Utils/WindowInputMonitor.h+8−2 plugins/Utils/windowstatestorage.h+13−3 plugins/Wizard/Wizard.qmltypes−33 po/aa.po+212−76 po/am.po+250−84 po/ar.po+216−77 po/ast.po+246−80 po/az.po+212−76 po/be.po+216−77 po/bg.po+212−76 po/bn.po+216−77 po/br.po+222−77 po/bs.po+216−77 po/ca.po+216−77 po/ca@valencia.po+212−76 po/ce.po+212−76 po/ckb.po+212−76 po/co.po+417−215 po/cs.po+216−77 po/cy.po+216−77 po/da.po+216−77 po/de.po+248−82 po/el.po+216−77 po/en_AU.po+246−80 po/en_GB.po+246−80 po/eo.po+212−76 po/es.po+248−82 po/eu.po+216−77 po/fa.po+246−80 po/fi.po+247−81 po/fo.po+298−158 po/fr.po+250−84 po/ga.po+216−77 po/gd.po+249−83 po/gl.po+246−80 po/gv.po+212−76 po/he.po+216−77 po/hi.po+212−76 po/hr.po+247−81 po/hu.po+246−80 po/hy.po+212−76 po/ia.po+246−80 po/id.po+212−76 po/is.po+212−76 po/it.po+247−81 po/ja.po+212−76 po/km.po+212−76 po/kn.po+212−76 po/ko.po+216−77 po/ku.po+212−76 po/ky.po+212−76 po/lo.po+212−76 po/lt.po+212−76 po/lv.po+216−77 po/ml.po+212−76 po/mr.po+212−76 po/ms.po+252−81 po/my.po+212−76 po/nb.po+246−80 po/ne.po+212−76 po/nl.po+242−79 po/nn.po+212−76 po/oc.po+225−77 po/or.po+212−76 po/pa.po+216−77 po/pl.po+248−82 po/pt.po+247−81 po/pt_BR.po+216−77 po/ro.po+216−77 po/ru.po+250−91 po/shn.po+212−76 po/si.po+212−76 po/sk.po+247−81 po/sl.po+246−80 po/sq.po+216−77 po/sr.po+246−80 po/sv.po+252−85 po/sw.po+216−77 po/ta.po+212−76 po/te.po+212−76 po/th.po+212−76 po/tr.po+216−77 po/ug.po+216−77 po/uk.po+247−81 po/unity8.pot+210−74 po/ur.po+212−76 po/uz.po+212−76 po/vi.po+212−76 po/wo.po+216−77 po/xh.po+212−76 po/zh_CN.po+246−80 po/zh_HK.po+212−76 po/zh_TW.po+216−77 qml/Components/Dialogs.qml+5−3 qml/Components/DragHandle.qml+43−25 qml/Components/FadingLabel.qml+42 qml/Components/FloatingFlickable.qml+59 qml/Components/Header.qml−28 qml/Components/KeyboardShortcutsOverlay.qml+334 qml/Components/ModeSwitchWarningDialog.qml+1−1 qml/Components/PanelState/PanelState.qml+4−3 qml/Components/PhysicalKeysMapper.qml+2−22 qml/Components/Rating.qml+1 qml/Components/RatingStyle.qml+3 qml/Components/WindowControlButtons.qml+39−34 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−1 qml/Dash/CardGrid.qml−2 qml/Dash/CardTool.qml+6−2 qml/Dash/Dash.qml+3−3 qml/Dash/DashApplication.qml−3 qml/Dash/DashCategoryBase.qml+3−11 qml/Dash/DashPageHeader.qml+31−36 qml/Dash/Filters/FilterOptionSelector.qml+4 qml/Dash/Filters/FilterWidgetFactory.qml+8 qml/Dash/GenericScopeView.qml+20−9 qml/Dash/PageHeaderExtraPanel.qml+34−10 qml/Dash/Previews/Preview.qml+1 qml/Dash/Previews/PreviewActions.qml+1−1 qml/Dash/Previews/PreviewImageGallery.qml+1 qml/Dash/Previews/PreviewPayments.qml+1−1 qml/Dash/Previews/PreviewRatingInput.qml+41−42 qml/Dash/ScopesList.qml+1−13 qml/Greeter/CoverPage.qml+1 qml/Greeter/Greeter.qml+18−14 qml/Greeter/GreeterPrompt.qml+142 qml/Greeter/LoginList.qml+59−76 qml/Greeter/WideView.qml+1−1 qml/Launcher/Launcher.qml+17−24 qml/Launcher/LauncherDelegate.qml+6−10 qml/Launcher/LauncherPanel.qml+2 qml/Notifications/Notification.qml+36−5 qml/Notifications/NotificationMenuItemFactory.qml+3 qml/Notifications/Notifications.qml+19−9 qml/Panel/Indicators/MessageMenuItemFactory.qml+1−5 qml/Panel/IndicatorsMenu.qml+17−13 qml/Panel/Panel.qml+20−7 qml/Shell.qml+55−14 qml/Stages/ApplicationWindow.qml+25−9 qml/Stages/DecoratedWindow.qml+47−17 qml/Stages/DesktopSpread.qml+1−1 qml/Stages/DesktopSpreadDelegate.qml+1−1 qml/Stages/DesktopStage.qml+112−55 qml/Stages/OrientationChangeAnimation.qml+30−6 qml/Stages/PhoneStage.qml+4−4 qml/Stages/ResizeGrip.qml+46 qml/Stages/SideStage.qml+1−2 qml/Stages/Splash.qml+6−17 qml/Stages/SpreadDelegate.qml+8−12 qml/Stages/TabletSideStageTouchGesture.qml+3 qml/Stages/TabletStage.qml+4−5 qml/Stages/WindowControlsOverlay.qml+219 qml/Stages/WindowDecoration.qml+30−11 qml/Stages/WindowResizeArea.qml+29−9 qml/Stages/graphics/arrows-centre.png qml/Stages/graphics/arrows.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/Wizard/Pages/10-welcome.qml+17−4 qml/Wizard/Pages/50-timezone.qml+5−2 src/CMakeLists.txt+1−4 src/Dash/CMakeLists.txt+1 src/Dash/main.cpp+7 tools/unix-signal-handler.cpp → src/UnixSignalHandler.cpp+4−6 tools/unix-signal-handler.h → src/UnixSignalHandler.h src/main.cpp+8 tests/CMakeLists.txt−1 tests/autopilot/unity8/dash.py+2−3 tests/libs/CMakeLists.txt−1 tests/libs/UbuntuGestures/CMakeLists.txt−16 tests/libs/UbuntuGestures/tst_TouchRegistry.cpp−974 tests/mocks/AccountsService/AccountsService.qmltypes−41 tests/mocks/Cursor/qmldir+1−1 tests/mocks/GSettings.1.0/GSettings.qmltypes−42 tests/mocks/GSettings.1.0/fake_gsettings.cpp+1 tests/mocks/GSettings.1.0/fake_gsettings.h+2−2 tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes−269 tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h−1 tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+1−1 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/QtMultimedia.qmltypes−62 tests/mocks/QtMultimedia/audio.cpp+3−3 tests/mocks/QtMultimedia/audio.h+12−6 tests/mocks/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypes−60 tests/mocks/Ubuntu/Payments/MockPayments.cpp+1 tests/mocks/Ubuntu/Payments/Payments.qmltypes−44 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/SystemSettings/TimeDate/CMakeLists.txt+1−1 tests/mocks/Ubuntu/SystemSettings/TimeDate/MockTimeDate.qml+15−3 tests/mocks/Ubuntu/SystemSettings/TimeDate/qmldir+1−1 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−27 tests/mocks/Unity/Application/ApplicationInfo.h+6−5 tests/mocks/Unity/Application/ApplicationManager.cpp+12 tests/mocks/Unity/Application/MirSurface.h+2−2 tests/mocks/Unity/Application/MirSurfaceItem.cpp+1 tests/mocks/Unity/Application/MirSurfaceListModel.cpp+13−3 tests/mocks/Unity/Application/MirSurfaceListModel.h+1 tests/mocks/Unity/Connectivity/Connectivity.qmltypes−20 tests/mocks/Unity/DashCommunicator/DashCommunicator.qmltypes−46 tests/mocks/Unity/Indicators/Indicators.qmltypes−232 tests/mocks/Unity/InputInfo/plugin.h+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/Notifications.qmltypes−149 tests/mocks/Unity/Screens/plugin.h+1−1 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−4 tests/mocks/Unity/fake_scope.h+1−1 tests/mocks/Unity/fake_scopes.cpp+12 tests/mocks/Unity/fake_scopesoverview.cpp+1−1 tests/mocks/Utils/Utils.qmltypes−178 tests/mocks/Utils/plugin.h+1−1 tests/mocks/Utils/windowstatestorage.h+14−3 tests/mocks/Wizard/Wizard.qmltypes−37 tests/mocks/libusermetrics/UserMetrics.cpp+1−1 tests/plugins/CMakeLists.txt+2−1 tests/plugins/Cursor/CMakeLists.txt+8 tests/plugins/Cursor/TextEntry.qml+34 tests/plugins/Cursor/tst_Cursor.qml+144 tests/plugins/Dash/cardcreator/1.res+17−46 tests/plugins/Dash/cardcreator/1.res.cardcreator+13−43 tests/plugins/Dash/cardcreator/1.tst+1 tests/plugins/Dash/cardcreator/10.res+4−13 tests/plugins/Dash/cardcreator/10.res.cardcreator−10 tests/plugins/Dash/cardcreator/10.tst+1 tests/plugins/Dash/cardcreator/11.res+20−49 tests/plugins/Dash/cardcreator/11.res.cardcreator+15−45 tests/plugins/Dash/cardcreator/11.tst+1 tests/plugins/Dash/cardcreator/12.res+17−46 tests/plugins/Dash/cardcreator/12.res.cardcreator+15−45 tests/plugins/Dash/cardcreator/12.tst+1 tests/plugins/Dash/cardcreator/2.res+4−13 tests/plugins/Dash/cardcreator/2.res.cardcreator−10 tests/plugins/Dash/cardcreator/2.tst+1 tests/plugins/Dash/cardcreator/3.res+16−54 tests/plugins/Dash/cardcreator/3.res.cardcreator+12−51 tests/plugins/Dash/cardcreator/3.tst+1 tests/plugins/Dash/cardcreator/4.res+5−6 tests/plugins/Dash/cardcreator/4.res.cardcreator+1−3 tests/plugins/Dash/cardcreator/4.tst+1 tests/plugins/Dash/cardcreator/5.res+11−55 tests/plugins/Dash/cardcreator/5.res.cardcreator+7−52 tests/plugins/Dash/cardcreator/5.tst+1 tests/plugins/Dash/cardcreator/6.res+3−4 tests/plugins/Dash/cardcreator/6.res.cardcreator+1−3 tests/plugins/Dash/cardcreator/6.tst+1 tests/plugins/Dash/cardcreator/7.res+4−13 tests/plugins/Dash/cardcreator/7.res.cardcreator−10 tests/plugins/Dash/cardcreator/7.tst+1 tests/plugins/Dash/cardcreator/8.res+5−6 tests/plugins/Dash/cardcreator/8.res.cardcreator+1−3 tests/plugins/Dash/cardcreator/8.tst+1 tests/plugins/Dash/cardcreator/9.res+5−6 tests/plugins/Dash/cardcreator/9.res.cardcreator+1−3 tests/plugins/Dash/cardcreator/9.tst+1 tests/plugins/Dash/cardcreatortest.cpp+9−6 tests/plugins/Dash/cardcreatortest.qml+4−4 tests/plugins/Dash/horizontaljournaltest.cpp+1−1 tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp+3−3 tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+9−3 tests/plugins/Dash/listviewwithpageheadertest.cpp+6−1 tests/plugins/Dash/listviewwithpageheadertestsection.qml+15−3 tests/plugins/Dash/listviewwithpageheadertestsectionexternalmodel.qml+2−1 tests/plugins/Dash/organicgridtest.cpp+1−1 tests/plugins/Dash/tst_ListViewWithPageHeaderQML.qml+4−2 tests/plugins/Dash/tst_ScopeStyle.qml+1−1 tests/plugins/Dash/verticaljournaltest.cpp+1−1 tests/plugins/Ubuntu/Gestures/CMakeLists.txt+4−4 tests/plugins/Ubuntu/Gestures/DownwardsLauncher.qml−72 tests/plugins/Ubuntu/Gestures/GestureTest.cpp+2−2 tests/plugins/Ubuntu/Gestures/LeftwardsLauncher.qml−76 tests/plugins/Ubuntu/Gestures/RightwardsLauncher.qml−76 tests/plugins/Ubuntu/Gestures/UpwardsLauncher.qml−76 tests/plugins/Ubuntu/Gestures/tst_Damper.cpp−40 tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.cpp−1250 tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.qml−76 tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+25−18 tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.qml+1 tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+1−1 tests/plugins/Unity/Indicators/MenuContentActivatorTest.cpp+1 tests/plugins/Unity/Launcher/CMakeLists.txt+1−1 tests/plugins/Unity/Launcher/launchermodeltest.cpp+22−2 tests/plugins/Unity/Session/sessionbackendtest.cpp−15 tests/plugins/Utils/WindowInputMonitorTest.cpp+52−11 tests/qmltests/Components/CMakeLists.txt+6−3 tests/qmltests/Components/tst_DragHandle.cpp+28−24 tests/qmltests/Components/tst_DragHandle.qml+22−4 tests/qmltests/Components/tst_DragHandle/BottomEdgeShowable.qml+108 tests/qmltests/Components/tst_DragHandle/HorizontalShowable.qml → tests/qmltests/Components/tst_DragHandle/LeftEdgeShowable.qml tests/qmltests/Components/tst_DragHandle/RightEdgeShowable.qml+108 tests/qmltests/Components/tst_DragHandle/VerticalShowable.qml → tests/qmltests/Components/tst_DragHandle/TopEdgeShowable.qml+7−7 tests/qmltests/Components/tst_EdgeDragEvaluator.cpp+1−1 tests/qmltests/Components/tst_PhysicalKeysMapper.qml+12−21 tests/qmltests/Dash/Previews/tst_Preview.qml−1 tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+23−4 tests/qmltests/Dash/Previews/tst_PreviewRatingEdit.qml+5−1 tests/qmltests/Dash/Previews/tst_PreviewRatingInput.qml+18−6 tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+1−1 tests/qmltests/Dash/tst_Card.qml+23−11 tests/qmltests/Dash/tst_CardTool.qml+1−1 tests/qmltests/Dash/tst_Dash.qml+103−63 tests/qmltests/Dash/tst_DashContent.qml+63−4 tests/qmltests/Dash/tst_DashPageHeader.qml−24 tests/qmltests/Dash/tst_DashShell.qml+1−1 tests/qmltests/Dash/tst_GenericScopeView.qml+30−2 tests/qmltests/Dash/tst_PreviewView.qml+3−3 tests/qmltests/Greeter/tst_Greeter.qml+1−1 tests/qmltests/Greeter/tst_NarrowView.qml+1−1 tests/qmltests/Greeter/tst_WideView.qml+22−29 tests/qmltests/Launcher/tst_Launcher.qml+38−10 tests/qmltests/Notifications/tst_Notifications.qml+89 tests/qmltests/Panel/Indicators/tst_MessageMenuItemFactory.qml+1 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+54−1 tests/qmltests/Stages/tst_PhoneStage.qml+1−1 tests/qmltests/Stages/tst_WindowResizeArea.qml+16−5 tests/qmltests/Tutorial/tst_Tutorial.qml+175−209 tests/qmltests/Wizard/tst_Wizard.qml+4−3 tests/qmltests/tst_OrientedShell.qml+15−2 tests/qmltests/tst_Shell.qml+69−20 tests/qmltests/tst_ShellWithPin.qml+1−1 tests/qmltests/utils/Unity/Test/tst_UnityTest.qml+31 tests/uqmlscene/main.cpp−1 tests/utils/modules/Unity/Test/CMakeLists.txt+4−2 tests/utils/modules/Unity/Test/Test.qmltypes−60 tests/utils/modules/Unity/Test/UnityTestCase.qml+31−12 tests/utils/modules/Unity/Test/testutil.cpp+19−2 tests/utils/modules/Unity/Test/testutil.h+1 tools/CMakeLists.txt+1−1 tools/scopetool.cpp+1−1
CMakeLists.txt+13−2
@@ -57,12 +57,24 @@ 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=16)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=18)
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)
6565
66+pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
67+
68+### Check UbuntuGestures private headers. No pkg-config (.pc) file is provided for them
69+find_path(UBUNTUGESTUREPRIV
70+ NAMES UbuntuGestures/private/damper_p.h UbuntuGestures/private/ucswipearea_p.h UbuntuGestures/private/ucswipearea_p_p.h
71+ PATHS ${UBUNTUGESTURES_INCLUDEDIR}/UbuntuGestures/${UBUNTUGESTURES_VERSION}
72+ NO_DEFAULT_PATH)
73+if (${UBUNTUGESTUREPRIV} STREQUAL UBUNTUGESTUREPRIV-NOTFOUND)
74+ message(FATAL_ERROR "UbuntuGestures private headers not found.")
75+endif()
76+# end of UbuntuGesture private headers check
77+
6678# Standard install paths
6779include(GNUInstallDirs)
6880
@@ -144,7 +156,6 @@ endif()
144156
145157# add subdirectories to build
146158add_subdirectory(include)
147−add_subdirectory(libs)
148159add_subdirectory(src)
149160add_subdirectory(tools)
150161add_subdirectory(qml)
data/unity8.conf+12−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,9 +50,19 @@ 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
5868 initctl emit --no-wait indicator-services-start
debian/changelog+151
@@ -1,3 +1,154 @@
1+unity8 (8.12+16.10.20160617-0ubuntu1) yakkety; urgency=medium
2+
3+ [ Michael Terry ]
4+ * Do not create Label/Icon if we don't need it
5+ * Fix Z-ordering of prompt surfaces (LP: #1586219)
6+ * Drop bottom edge tutorials completely and small fixes for other
7+ edges. (LP: #1565103)
8+ * Redo visuals for greeter prompt box. (LP: #1435923)
9+ * Make tutorial qmltests more robust. (LP: #1590810)
10+ * Stop showing an extra lockscreen in desktop unity8 sessions. (LP:
11+ #1582987)
12+
13+ [ Albert Astals Cid ]
14+ * Improve dash plugin mock
15+ * Stabilize PreviewExpandableTest::test_all_widgets_height
16+ * Workaround QTBUG-53460
17+ * Split artShape code for cardTool card and regular card
18+ * Simplify the code since fixedArtSize code is mandatory for regular
19+ cards
20+ * Desktop stage: Support rotatesWindowContents (LP: #1547481)
21+ * Turn if if else into if elseif else
22+ * Fix leaks in QInputDeviceManagerPrivate::addDevice
23+ * Do not call |= on uninitialized sigterm.sa_flags
24+ * initialize udevMonitor
25+ * Make notifier and notifierFd function local variables
26+ * Fix crash if a component that is not an Item is given to
27+ sectionDelegate
28+ * Tests: Do not use dynamic_cast if we're not going to test it anyway
29+ * Minor coverity fixes
30+ * Fix warning about anchors.fill in ProportionalShape (LP: #1590963)
31+ * Make wait in cleanup() wait for snapTo animation to have finished
32+
33+ [ Alexandros Frantzis ]
34+ * Improve the way notifications interact with power management (LP:
35+ #1570922)
36+
37+ [ Andrea Cimitan ]
38+ * Correctly refresh cardcreator cache on artshapestyle changes (LP:
39+ #1588335)
40+ * Same tweaks we have for click scope now for libertine
41+ * add a timer to pull to refresh to work on small windows (LP:
42+ #1589060)
43+
44+ [ Daniel d'Andrada ]
45+ * Clean up debug leftovers
46+ * Ensure mouse and window movement are pixel-aligned (LP: #1510382)
47+ * Fix SpreadDelegate rotation animations
48+ * No point in version-controlling files that are automatically
49+ generated
50+ * Center cursor on screen when it's first shown
51+ * Custom cursor name just have to start with "custom"
52+ * Work around AnimatedSprite infinite loop bug (LP: #1588929)
53+
54+ [ Josh Arenson ]
55+ * Disable showDash when it is already shown. (LP: #1506708)
56+ * Add a timestamp to the dash log (LP: #1580074)
57+ * Add timestamp to unity8 log (LP: #1498169)
58+
59+ [ Lukáš Tinkl ]
60+ * Implement keyboard shortcuts info panel
61+ * Implement window controls overlay activatable with 3 fingers tap
62+ (LP: #1489020)
63+ * Select correct Chinese input method for OSK in the wizard (LP:
64+ #1588633)
65+
66+ [ Michael Zanetti ]
67+ * Add support for the launcher surface pips displaying the correct
68+ number of surfaces
69+ * Add support for the persistent alert state. (LP: #1575147, #1584348,
70+ #1586621)
71+ * send a Alt-release event on alt+tab instead of delaying it
72+ completely and invoking it later (LP: #1565236)
73+
74+ [ Stephen M. Webb ]
75+ * added a new upstart $SESSION for unity8-desktop-session (LP:
76+ #1376715)
77+
78+ -- Michael Terry <michael.terry@canonical.com> Fri, 17 Jun 2016 01:22:57 +0000
79+
80+unity8 (8.12+16.10.20160601.1-0ubuntu1) yakkety; urgency=medium
81+
82+ [ Pawel Stolowski ]
83+ * Added apparmor profile for unity8-dash.
84+
85+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 01 Jun 2016 20:59:03 +0000
86+
87+unity8 (8.12+16.10.20160527-0ubuntu1) yakkety; urgency=medium
88+
89+ [ Albert Astals Cid ]
90+ * Activate on click for SimpleMessages (LP: #1421696)
91+ * Add override
92+ * Change the art back to the cardData value if it changes from broken
93+ to valid image (LP: #1533577)
94+ * Concierge mode generated code optimization
95+ * Don't use context properties but properties of the delegates
96+ * Listen to contentItem::widthChanged instead of
97+ Flickable::contentWidthChanged (LP: #1565763)
98+ * Make some AP code faster
99+ * Make tests a bit more stable
100+ * Make unity8 and unity8-dash handle termination signals
101+ * Remove workaround not needed anymore (LP: #1475643)
102+ * Resolve cardArtStyle on compile time
103+ * Set the theme earlier (LP: #1574048)
104+
105+ [ Albert Astals Cid, Daniel d'Andrada ]
106+ * Remove DirectionalDragArea and libs/UbuntuGestures and port to SDK
107+ equivalents
108+
109+ [ Andrea Cimitan ]
110+ * Hide the preview review input field when a rating is required (LP:
111+ #1541971)
112+
113+ [ CI Train Bot ]
114+ * Resync trunk.
115+
116+ [ Daniel d'Andrada ]
117+ * Fix DragHandle so it works in all directions
118+ * Support animated cursors
119+ * WindowInputMonitor - also map Qt::Key_HomePage to our home key
120+ * plugins/Cursor: properly register to the screen's QPlatformCursor
121+ when screen changes (LP: #1579742)
122+
123+ [ Josh Arenson ]
124+ * Close the PageHeaderExtraPanel when a filter option is selected (LP:
125+ #1569498)
126+ * Wrap primaryFilter in a flickable to make it behave nicely. (LP:
127+ #1569492)
128+
129+ [ Lukáš Tinkl ]
130+ * First snap decision should always be expanded, unless user decides
131+ otherwise (LP: #1580090, #1575045)
132+ * Fullscreen notification bug fixes (LP: #1583944, #1581498, #1422711)
133+ * Implement maximizing windows horizontally/vertically
134+ * Lock the session when putting the laptop into sleep (LP: #1581063)
135+
136+ [ Lukáš Tinkl, Michael Terry ]
137+ * With a maximized window, "dragging" the panel down should restore it
138+
139+ [ Michael Terry ]
140+ * Change some dash button colors from orange to green. (LP: #1581047)
141+ * Use PageHeader instead Ambiance's PageHeadStyle
142+ * Use new setTimeZone method to set user-friendly timezone name in the
143+ wizard. (LP: #1566295)
144+
145+ [ Michael Zanetti ]
146+ * Remove the background dimming when the launcher is revealed by a
147+ drag (LP: #1575137)
148+ * reenable or drop disabled tests
149+
150+ -- Michael Terry <michael.terry@canonical.com> Fri, 27 May 2016 13:54:44 +0000
151+
1152unity8 (8.12+16.10.20160520.1-0ubuntu1) yakkety; urgency=medium
2153
3154 [ Lukáš Tinkl ]
debian/control+6−3
@@ -5,6 +5,7 @@ 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
1011# to g++ so we don't try to run armhf g++
@@ -29,8 +30,10 @@ Build-Depends: cmake,
2930 libqt5svg5-dev,
3031 libqt5xmlpatterns5-dev,
3132 libsystemsettings-dev,
33+ libubuntugestures5-dev,
34+ libubuntugestures5-private-dev,
3235 libudev-dev,
33− libunity-api-dev (>= 7.112),
36+ libunity-api-dev (>= 7.115),
3437 libusermetricsoutput1-dev,
3538# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
3639 libx11-dev[!armhf],
@@ -106,7 +109,7 @@ Depends: dmz-cursor-theme,
106109 qtdeclarative5-qtmir-plugin (>= 0.4.8),
107110 qtdeclarative5-ubuntu-telephony0.1,
108111 qtdeclarative5-ubuntu-web-plugin,
109− ubuntu-system-settings,
112+ ubuntu-system-settings (>= 0.4),
110113 unity-launcher-impl-7,
111114 unity8-common (= ${source:Version}),
112115 unity8-private (= ${binary:Version}),
@@ -133,7 +136,7 @@ Depends: qml-module-qtquick-layouts,
133136 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
134137 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
135138 ubuntu-thumbnailer-impl-0,
136− unity-application-impl-16,
139+ unity-application-impl-17,
137140 unity-notifications-impl-3,
138141 unity-plugin-scopes | unity-scopes-impl,
139142 unity-scopes-impl-12,
debian/rules+4
@@ -29,6 +29,10 @@ 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
debian/unity8-private.install−1
@@ -1,5 +1,4 @@
11usr/lib/*/libunity8-private.*
2−usr/lib/*/unity8/libUbuntuGestures*
32usr/lib/*/unity8/qml/AccountsService
43usr/lib/*/unity8/qml/Cursor
54usr/lib/*/unity8/qml/Dash
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+}
libs/CMakeLists.txtdeleted−1
@@ -1 +0,0 @@
1−add_subdirectory(UbuntuGestures)
libs/UbuntuGestures/CMakeLists.txtdeleted−41
@@ -1,41 +0,0 @@
1−# in order to include Qt's private headers
2−remove_definitions(-DQT_NO_KEYWORDS)
3−
4−set(UbuntuGestures_SOURCES
5− CandidateInactivityTimer.cpp
6− DebugHelpers.cpp
7− Timer.cpp
8− TimeSource.cpp
9− TouchOwnershipEvent.cpp
10− TouchRegistry.cpp
11− UnownedTouchEvent.cpp
12−)
13−
14−add_definitions(-DUBUNTUGESTURES_LIBRARY)
15−
16−add_library(UbuntuGestures SHARED ${UbuntuGestures_SOURCES})
17−
18−qt5_use_modules(UbuntuGestures Core Quick)
19−
20−# So that Foo.cpp can #include "Foo.moc"
21−include_directories(${CMAKE_CURRENT_BINARY_DIR})
22−
23−install(TARGETS UbuntuGestures
24− DESTINATION ${SHELL_PRIVATE_LIBDIR})
25−
26−
27−# There's no cmake var for v8 include path :-/ so create one
28−LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
29−if(${Qt5Core_VERSION_STRING} VERSION_LESS "5.1.0")
30− SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/../QtV8/${Qt5Core_VERSION_STRING}/QtV8)
31−else()
32− SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/QtV8/${Qt5Core_VERSION_STRING}/QtV8)
33−endif()
34−
35−# DANGER! DANGER! Using Qt's private API!
36−include_directories(
37− ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
38− ${Qt5Quick_INCLUDE_DIRS}
39− ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
40− ${Qt5V8_PRIVATE_INCLUDE_DIR}
41−)
libs/UbuntuGestures/CandidateInactivityTimer.cppdeleted−46
@@ -1,46 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "CandidateInactivityTimer.h"
18−
19−namespace UbuntuGestures {
20−
21−CandidateInactivityTimer::CandidateInactivityTimer(int touchId, QQuickItem *candidate,
22− AbstractTimer *timer, QObject *parent)
23− : QObject(parent)
24− , m_timer(timer)
25− , m_touchId(touchId)
26− , m_candidate(candidate)
27−{
28− connect(m_timer, &AbstractTimer::timeout,
29− this, &CandidateInactivityTimer::onTimeout);
30− m_timer->setInterval(durationMs);
31− m_timer->setSingleShot(true);
32− m_timer->start();
33−}
34−
35−CandidateInactivityTimer::~CandidateInactivityTimer()
36−{
37− delete m_timer;
38−}
39−
40−void CandidateInactivityTimer::onTimeout()
41−{
42− qWarning("[TouchRegistry] Candidate for touch %d defaulted!", m_touchId);
43− Q_EMIT candidateDefaulted(m_touchId, m_candidate);
44−}
45−
46−} // namespace UbuntuGestures
libs/UbuntuGestures/CandidateInactivityTimer.hdeleted−51
@@ -1,51 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTUGESTURES_CANDIDATE_INACTIVITY_TIMER_H
18−#define UBUNTUGESTURES_CANDIDATE_INACTIVITY_TIMER_H
19−
20−#include <QObject>
21−
22−class QQuickItem;
23−
24−#include "Timer.h"
25−
26−namespace UbuntuGestures {
27−
28−class UBUNTUGESTURES_EXPORT CandidateInactivityTimer : public QObject {
29− Q_OBJECT
30−public:
31− CandidateInactivityTimer(int touchId, QQuickItem *candidate,
32− AbstractTimer *timer,
33− QObject *parent = nullptr);
34−
35− virtual ~CandidateInactivityTimer();
36−
37− const int durationMs = 1000;
38−
39−Q_SIGNALS:
40− void candidateDefaulted(int touchId, QQuickItem *candidate);
41−private Q_SLOTS:
42− void onTimeout();
43−private:
44− AbstractTimer *m_timer;
45− int m_touchId;
46− QQuickItem *m_candidate;
47−};
48−
49−} // namespace UbuntuGestures
50−
51−#endif // UBUNTUGESTURES_CANDIDATE_INACTIVITY_TIMER_H
libs/UbuntuGestures/DebugHelpers.cppdeleted−95
@@ -1,95 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "DebugHelpers.h"
18−#include <QTouchEvent>
19−#include <QMouseEvent>
20−
21−QString touchPointStateToString(Qt::TouchPointState state)
22−{
23− switch (state) {
24− case Qt::TouchPointPressed:
25− return QStringLiteral("pressed");
26− case Qt::TouchPointMoved:
27− return QStringLiteral("moved");
28− case Qt::TouchPointStationary:
29− return QStringLiteral("stationary");
30− case Qt::TouchPointReleased:
31− return QStringLiteral("released");
32− default:
33− return QStringLiteral("INVALID_STATE");
34− }
35−}
36−
37−QString touchEventToString(const QTouchEvent *ev)
38−{
39− QString message;
40−
41− switch (ev->type()) {
42− case QEvent::TouchBegin:
43− message.append("TouchBegin ");
44− break;
45− case QEvent::TouchUpdate:
46− message.append("TouchUpdate ");
47− break;
48− case QEvent::TouchEnd:
49− message.append("TouchEnd ");
50− break;
51− case QEvent::TouchCancel:
52− message.append("TouchCancel ");
53− break;
54− default:
55− message.append("INVALID_TOUCH_EVENT_TYPE ");
56− }
57−
58− foreach(const QTouchEvent::TouchPoint& touchPoint, ev->touchPoints()) {
59− message.append(
60− QStringLiteral("(id:%1, state:%2, scenePos:(%3,%4)) ")
61− .arg(touchPoint.id())
62− .arg(touchPointStateToString(touchPoint.state()))
63− .arg(touchPoint.scenePos().x())
64− .arg(touchPoint.scenePos().y())
65− );
66− }
67−
68− return message;
69−}
70−
71−QString mouseEventToString(const QMouseEvent *ev)
72−{
73− QString message;
74−
75− switch (ev->type()) {
76− case QEvent::MouseButtonPress:
77− message.append("MouseButtonPress ");
78− break;
79− case QEvent::MouseButtonRelease:
80− message.append("MouseButtonRelease ");
81− break;
82− case QEvent::MouseButtonDblClick:
83− message.append("MouseButtonDblClick ");
84− break;
85− case QEvent::MouseMove:
86− message.append("MouseMove ");
87− break;
88− default:
89− message.append("INVALID_MOUSE_EVENT_TYPE ");
90− }
91−
92− message.append(QStringLiteral("pos(%1, %2)").arg(ev->x()).arg(ev->y()));
93−
94− return message;
95−}
libs/UbuntuGestures/DebugHelpers.hdeleted−31
@@ -1,31 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTUGESTURES_DEBUG_HELPER_H
18−#define UBUNTUGESTURES_DEBUG_HELPER_H
19−
20−#include <QString>
21−
22−#include "UbuntuGesturesGlobal.h"
23−
24−class QMouseEvent;
25−class QTouchEvent;
26−
27−UBUNTUGESTURES_EXPORT QString touchPointStateToString(Qt::TouchPointState state);
28−UBUNTUGESTURES_EXPORT QString touchEventToString(const QTouchEvent *ev);
29−UBUNTUGESTURES_EXPORT QString mouseEventToString(const QMouseEvent *ev);
30−
31−#endif // UBUNTUGESTURES_DEBUG_HELPER_H
libs/UbuntuGestures/Pool.hdeleted−124
@@ -1,124 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTUGESTURES_POOL_H
18−#define UBUNTUGESTURES_POOL_H
19−
20−#include <QVector>
21−
22−#include "UbuntuGesturesGlobal.h"
23−
24−/*
25− An object pool.
26− Avoids unnecessary creations/initializations and deletions/destructions of items. Useful
27− in a scenario where items are created and destroyed very frequently but the total number
28− of items at any given time remains small. They're stored in a unordered fashion.
29−
30− To be used in Pool, ItemType needs to have the following methods:
31−
32− - ItemType();
33−
34− A constructor that takes no parameters. An object contructed with it must return false if
35− isValid() is called.
36−
37− - bool isValid() const;
38−
39− Returns wheter the object holds a valid , "filled" state or is empty.
40− Used by Pool to check if the slot occupied by this object is actually available.
41−
42− - void reset();
43−
44− Resets the object to its initial, empty, state. After calling this method, isValid() must
45− return false.
46− */
47−template <class ItemType> class Pool
48−{
49−public:
50− Pool() : m_lastUsedIndex(-1) {
51− }
52−
53− class Iterator {
54− public:
55− Iterator() : index(-1), item(nullptr) {}
56− Iterator(int index, ItemType *item)
57− : index(index), item(item) {}
58−
59− ItemType *operator->() const { return item; }
60− ItemType &operator*() const { return *item; }
61− ItemType &value() const { return *item; }
62−
63− operator bool() const { return item != nullptr; }
64−
65− int index;
66− ItemType *item;
67− };
68−
69− ItemType &getEmptySlot() {
70− Q_ASSERT(m_lastUsedIndex < m_slots.size());
71−
72− // Look for an in-between vacancy first
73− for (int i = 0; i < m_lastUsedIndex; ++i) {
74− ItemType &item = m_slots[i];
75− if (!item.isValid()) {
76− return item;
77− }
78− }
79−
80− ++m_lastUsedIndex;
81− if (m_lastUsedIndex >= m_slots.size()) {
82− m_slots.resize(m_lastUsedIndex + 1);
83− }
84−
85− return m_slots[m_lastUsedIndex];
86− }
87−
88− void freeSlot(Iterator &iterator) {
89− m_slots[iterator.index].reset();
90− if (iterator.index == m_lastUsedIndex) {
91− do {
92− --m_lastUsedIndex;
93− } while (m_lastUsedIndex >= 0 && !m_slots.at(m_lastUsedIndex).isValid());
94− }
95− }
96−
97− // Iterates through all valid items (i.e. the occupied slots)
98− // calling the given function, with the option of ending the loop early.
99− //
100− // bool Func(Iterator& item)
101− //
102− // Returning true means it wants to continue the "for" loop, false
103− // terminates the loop.
104− template<typename Func> void forEach(Func func) {
105− Iterator it;
106− for (it.index = 0; it.index <= m_lastUsedIndex; ++it.index) {
107− it.item = &m_slots[it.index];
108− if (!it.item->isValid())
109− continue;
110−
111− if (!func(it))
112− break;
113− }
114− }
115−
116− bool isEmpty() const { return m_lastUsedIndex == -1; }
117−
118−
119−private:
120− QVector<ItemType> m_slots;
121− int m_lastUsedIndex;
122−};
123−
124−#endif // UBUNTUGESTURES_POOL_H
libs/UbuntuGestures/TimeSource.cppdeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2013 - Canonical Ltd.
3− *
4− * This program is free software: you can redistribute it and/or modify it
5− * under the terms of the GNU Lesser General Public License, as
6− * published by the Free Software Foundation; either version 2.1 or 3.0
7− * of the License.
8− *
9− * This program is distributed in the hope that it will be useful, but
10− * WITHOUT ANY WARRANTY; without even the implied warranties of
11− * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
12− * PURPOSE. See the applicable version of the GNU Lesser General Public
13− * License for more details.
14− *
15− * You should have received a copy of both the GNU Lesser General Public
16− * License along with this program. If not, see <http://www.gnu.org/licenses/>
17− *
18− * Authored by: Daniel d'Andrada <daniel.dandrada@canonical.com>
19− */
20−
21−#include "TimeSource.h"
22−
23−#include <QElapsedTimer>
24−
25−namespace UbuntuGestures {
26−class RealTimeSourcePrivate {
27−public:
28− QElapsedTimer timer;
29−};
30−}
31−
32−using namespace UbuntuGestures;
33−
34−RealTimeSource::RealTimeSource()
35− : UbuntuGestures::TimeSource()
36− , d(new RealTimeSourcePrivate)
37−{
38− d->timer.start();
39−}
40−
41−RealTimeSource::~RealTimeSource()
42−{
43− delete d;
44−}
45−
46−qint64 RealTimeSource::msecsSinceReference()
47−{
48− return d->timer.elapsed();
49−}
libs/UbuntuGestures/TimeSource.hdeleted−64
@@ -1,64 +0,0 @@
1−/*
2− * Copyright (C) 2013,2015 Canonical Ltd.
3− *
4− * This program is free software: you can redistribute it and/or modify it
5− * under the terms of the GNU Lesser General Public License, as
6− * published by the Free Software Foundation; either version 2.1 or 3.0
7− * of the License.
8− *
9− * This program is distributed in the hope that it will be useful, but
10− * WITHOUT ANY WARRANTY; without even the implied warranties of
11− * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
12− * PURPOSE. See the applicable version of the GNU Lesser General Public
13− * License for more details.
14− *
15− * You should have received a copy of both the GNU Lesser General Public
16− * License along with this program. If not, see <http://www.gnu.org/licenses/>
17− *
18− * Authored by: Daniel d'Andrada <daniel.dandrada@canonical.com>
19− */
20−
21−#ifndef UBUNTUGESTURES_TIMESOURCE_H
22−#define UBUNTUGESTURES_TIMESOURCE_H
23−
24−#include "UbuntuGesturesGlobal.h"
25−#include <QSharedPointer>
26−
27−namespace UbuntuGestures {
28−/*
29− Interface for a time source.
30− */
31−class UBUNTUGESTURES_EXPORT TimeSource {
32−public:
33− virtual ~TimeSource() {}
34− /* Returns the current time in milliseconds since some reference time in the past. */
35− virtual qint64 msecsSinceReference() = 0;
36−};
37−typedef QSharedPointer<TimeSource> SharedTimeSource;
38−
39−/*
40− Implementation of a time source
41− */
42−class RealTimeSourcePrivate;
43−class UBUNTUGESTURES_EXPORT RealTimeSource : public TimeSource {
44−public:
45− RealTimeSource();
46− virtual ~RealTimeSource();
47− qint64 msecsSinceReference() override;
48−private:
49− RealTimeSourcePrivate *d;
50−};
51−
52−/*
53− A fake time source, useful for tests
54− */
55−class FakeTimeSource : public TimeSource {
56−public:
57− FakeTimeSource() { m_msecsSinceReference = 0; }
58− qint64 msecsSinceReference() override { return m_msecsSinceReference; }
59− qint64 m_msecsSinceReference;
60−};
61−
62−} // namespace UbuntuGestures
63−
64−#endif // UBUNTUGESTURES_TIMESOURCE_H
libs/UbuntuGestures/Timer.cppdeleted−152
@@ -1,152 +0,0 @@
1−/*
2− * Copyright (C) 2014-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−#include "Timer.h"
18−
19−namespace UbuntuGestures {
20−
21−Timer::Timer(QObject *parent) : AbstractTimer(parent)
22−{
23− m_timer.setSingleShot(false);
24− connect(&m_timer, &QTimer::timeout, this, &AbstractTimer::timeout);
25−}
26−
27−int Timer::interval() const
28−{
29− return m_timer.interval();
30−}
31−
32−void Timer::setInterval(int msecs)
33−{
34− m_timer.setInterval(msecs);
35−}
36−
37−void Timer::start()
38−{
39− m_timer.start();
40− AbstractTimer::start();
41−}
42−
43−void Timer::stop()
44−{
45− m_timer.stop();
46− AbstractTimer::stop();
47−}
48−
49−bool Timer::isSingleShot() const
50−{
51− return m_timer.isSingleShot();
52−}
53−
54−void Timer::setSingleShot(bool value)
55−{
56− m_timer.setSingleShot(value);
57−}
58−
59−/////////////////////////////////// FakeTimer //////////////////////////////////
60−
61−FakeTimer::FakeTimer(const SharedTimeSource &timeSource, QObject *parent)
62− : UbuntuGestures::AbstractTimer(parent)
63− , m_interval(0)
64− , m_singleShot(false)
65− , m_timeSource(timeSource)
66−{
67−}
68−
69−void FakeTimer::update()
70−{
71− if (!isRunning()) {
72− return;
73− }
74−
75− if (m_nextTimeoutTime <= m_timeSource->msecsSinceReference()) {
76− if (isSingleShot()) {
77− stop();
78− } else {
79− m_nextTimeoutTime += interval();
80− }
81− Q_EMIT timeout();
82− }
83−}
84−
85−void FakeTimer::start()
86−{
87− AbstractTimer::start();
88− m_nextTimeoutTime = m_timeSource->msecsSinceReference() + (qint64)interval();
89−}
90−
91−int FakeTimer::interval() const
92−{
93− return m_interval;
94−}
95−
96−void FakeTimer::setInterval(int msecs)
97−{
98− m_interval = msecs;
99−}
100−
101−bool FakeTimer::isSingleShot() const
102−{
103− return m_singleShot;
104−}
105−
106−void FakeTimer::setSingleShot(bool value)
107−{
108− m_singleShot = value;
109−}
110−
111−/////////////////////////////////// FakeTimerFactory //////////////////////////////////
112−
113−FakeTimerFactory::FakeTimerFactory()
114−{
115− m_timeSource.reset(new FakeTimeSource);
116−}
117−
118−void FakeTimerFactory::updateTime(qint64 targetTime)
119−{
120− qint64 minTimeoutTime = targetTime;
121−
122− for (int i = 0; i < timers.count(); ++i) {
123− FakeTimer *timer = timers[i].data();
124− if (timer && timer->isRunning() && timer->nextTimeoutTime() < minTimeoutTime) {
125− minTimeoutTime = timer->nextTimeoutTime();
126− }
127− }
128−
129− m_timeSource->m_msecsSinceReference = minTimeoutTime;
130−
131− for (int i = 0; i < timers.count(); ++i) {
132− FakeTimer *timer = timers[i].data();
133− if (timer) {
134− timer->update();
135− }
136− }
137−
138− if (m_timeSource->msecsSinceReference() < targetTime) {
139− updateTime(targetTime);
140− }
141−}
142−
143−AbstractTimer *FakeTimerFactory::createTimer(QObject *parent)
144−{
145− FakeTimer *fakeTimer = new FakeTimer(m_timeSource, parent);
146−
147− timers.append(fakeTimer);
148−
149− return fakeTimer;
150−}
151−
152−} // namespace UbuntuGestures
libs/UbuntuGestures/Timer.hdeleted−122
@@ -1,122 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTUGESTURES_TIMER_H
18−#define UBUNTUGESTURES_TIMER_H
19−
20−#include "UbuntuGesturesGlobal.h"
21−#include "TimeSource.h"
22−
23−#include <QObject>
24−#include <QPointer>
25−#include <QTimer>
26−
27−namespace UbuntuGestures {
28−
29−/* Defines an interface for a Timer. Useful for tests. */
30−class UBUNTUGESTURES_EXPORT AbstractTimer : public QObject
31−{
32− Q_OBJECT
33−public:
34− AbstractTimer(QObject *parent) : QObject(parent), m_isRunning(false) {}
35− virtual int interval() const = 0;
36− virtual void setInterval(int msecs) = 0;
37− virtual void start() { m_isRunning = true; }
38− virtual void start(int msecs)
39− {
40− setInterval(msecs);
41− start();
42− }
43− virtual void stop() { m_isRunning = false; }
44− bool isRunning() const { return m_isRunning; }
45− virtual bool isSingleShot() const = 0;
46− virtual void setSingleShot(bool value) = 0;
47−Q_SIGNALS:
48− void timeout();
49−private:
50− bool m_isRunning;
51−};
52−
53−/* Essentially a QTimer wrapper */
54−class UBUNTUGESTURES_EXPORT Timer : public AbstractTimer
55−{
56− Q_OBJECT
57−public:
58− Timer(QObject *parent = nullptr);
59−
60− int interval() const override;
61− void setInterval(int msecs) override;
62− void start() override;
63− void stop() override;
64− bool isSingleShot() const override;
65− void setSingleShot(bool value) override;
66−private:
67− QTimer m_timer;
68−};
69−
70−/* For tests */
71−class UBUNTUGESTURES_EXPORT FakeTimer : public AbstractTimer
72−{
73− Q_OBJECT
74−public:
75− FakeTimer(const SharedTimeSource &timeSource, QObject *parent = nullptr);
76−
77− void update();
78− qint64 nextTimeoutTime() const { return m_nextTimeoutTime; }
79−
80− int interval() const override;
81− void setInterval(int msecs) override;
82− void start() override;
83− bool isSingleShot() const override;
84− void setSingleShot(bool value) override;
85−private:
86− int m_interval;
87− bool m_singleShot;
88− SharedTimeSource m_timeSource;
89− qint64 m_nextTimeoutTime;
90−};
91−
92−class UBUNTUGESTURES_EXPORT AbstractTimerFactory
93−{
94−public:
95− virtual ~AbstractTimerFactory() {}
96− virtual AbstractTimer *createTimer(QObject *parent = nullptr) = 0;
97−};
98−
99−class UBUNTUGESTURES_EXPORT TimerFactory : public AbstractTimerFactory
100−{
101−public:
102− AbstractTimer *createTimer(QObject *parent = nullptr) override { return new Timer(parent); }
103−};
104−
105−class UBUNTUGESTURES_EXPORT FakeTimerFactory : public AbstractTimerFactory
106−{
107−public:
108− FakeTimerFactory();
109− virtual ~FakeTimerFactory() {}
110−
111− void updateTime(qint64 msecsSinceReference);
112− QSharedPointer<TimeSource> timeSource() { return m_timeSource; }
113−
114− AbstractTimer *createTimer(QObject *parent = nullptr) override;
115− QList<QPointer<FakeTimer>> timers;
116−private:
117− QSharedPointer<FakeTimeSource> m_timeSource;
118−};
119−
120−} // namespace UbuntuGestures
121−
122−#endif // UBUNTUGESTURES_TIMER_H
libs/UbuntuGestures/TouchOwnershipEvent.cppdeleted−35
@@ -1,35 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "TouchOwnershipEvent.h"
18−
19−QEvent::Type TouchOwnershipEvent::m_touchOwnershipType = (QEvent::Type)-1;
20−
21−TouchOwnershipEvent::TouchOwnershipEvent(int touchId, bool gained)
22− : QEvent(touchOwnershipEventType())
23− , m_touchId(touchId)
24− , m_gained(gained)
25−{
26−}
27−
28−QEvent::Type TouchOwnershipEvent::touchOwnershipEventType()
29−{
30− if (m_touchOwnershipType == (QEvent::Type)-1) {
31− m_touchOwnershipType = (QEvent::Type)registerEventType();
32− }
33−
34− return m_touchOwnershipType;
35−}
libs/UbuntuGestures/TouchOwnershipEvent.hdeleted−50
@@ -1,50 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTU_TOUCHOWNERSHIPEVENT_H
18−#define UBUNTU_TOUCHOWNERSHIPEVENT_H
19−
20−#include <QEvent>
21−#include "UbuntuGesturesGlobal.h"
22−
23−/*
24− When an item get an ownership event for a touch it can grab/steal that touch
25− with a clean conscience.
26− */
27−class UBUNTUGESTURES_EXPORT TouchOwnershipEvent : public QEvent
28−{
29−public:
30− TouchOwnershipEvent(int touchId, bool gained);
31−
32− static Type touchOwnershipEventType();
33−
34− /*
35− Whether ownership was gained (true) or lost (false)
36− */
37− bool gained() const { return m_gained; }
38−
39− /*
40− Id of the touch whose ownership was granted.
41− */
42− int touchId() const { return m_touchId; }
43−
44−private:
45− static Type m_touchOwnershipType;
46− int m_touchId;
47− bool m_gained;
48−};
49−
50−#endif // UBUNTU_TOUCHOWNERSHIPEVENT_H
libs/UbuntuGestures/TouchRegistry.cppdeleted−553
@@ -1,553 +0,0 @@
1−/*
2− * Copyright (C) 2014-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−#include "TouchRegistry.h"
18−
19−#include <QCoreApplication>
20−#include <QDebug>
21−
22−#pragma GCC diagnostic push
23−#pragma GCC diagnostic ignored "-pedantic"
24−#include <private/qquickitem_p.h>
25−#pragma GCC diagnostic pop
26−
27−#include "CandidateInactivityTimer.h"
28−#include "Timer.h"
29−#include "TouchOwnershipEvent.h"
30−#include "UnownedTouchEvent.h"
31−
32−#define TOUCHREGISTRY_DEBUG 0
33−
34−#if TOUCHREGISTRY_DEBUG
35− #include "DebugHelpers.h"
36− #define UG_DEBUG qDebug() << "[TouchRegistry]"
37−#endif // TOUCHREGISTRY_DEBUG
38−
39−using namespace UbuntuGestures;
40−
41−TouchRegistry *TouchRegistry::m_instance = nullptr;
42−
43−TouchRegistry::TouchRegistry(QObject *parent)
44− : QObject(parent)
45− , m_inDispatchLoop(false)
46− , m_timerFactory(new TimerFactory)
47−{
48−}
49−
50−TouchRegistry::~TouchRegistry()
51−{
52− Q_ASSERT(m_instance != nullptr);
53− m_instance = nullptr;
54− delete m_timerFactory;
55−}
56−
57−TouchRegistry *TouchRegistry::instance()
58−{
59− if (m_instance == nullptr) {
60− m_instance = new TouchRegistry;
61− }
62− return m_instance;
63−}
64−
65−void TouchRegistry::setTimerFactory(AbstractTimerFactory *timerFactory)
66−{
67− delete m_timerFactory;
68− m_timerFactory = timerFactory;
69−}
70−
71−void TouchRegistry::update(const QTouchEvent *event)
72−{
73− #if TOUCHREGISTRY_DEBUG
74− UG_DEBUG << "got" << qPrintable(touchEventToString(event));
75− #endif
76−
77− const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
78− for (int i = 0; i < touchPoints.count(); ++i) {
79− const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
80− if (touchPoint.state() == Qt::TouchPointPressed) {
81− TouchInfo &touchInfo = m_touchInfoPool.getEmptySlot();
82− touchInfo.init(touchPoint.id());
83− } else if (touchPoint.state() == Qt::TouchPointReleased) {
84− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(touchPoint.id());
85−
86− touchInfo->physicallyEnded = true;
87− }
88− }
89−
90− deliverTouchUpdatesToUndecidedCandidatesAndWatchers(event);
91−
92− freeEndedTouchInfos();
93−}
94−
95−void TouchRegistry::deliverTouchUpdatesToUndecidedCandidatesAndWatchers(const QTouchEvent *event)
96−{
97− // TODO: Look into how we could optimize this whole thing.
98− // Although it's not really a problem as we should have at most two candidates
99− // for each point and there should not be many active points at any given moment.
100− // But having three nested for-loops does scare.
101−
102− const QList<QTouchEvent::TouchPoint> &updatedTouchPoints = event->touchPoints();
103−
104− // Maps an item to the touches in this event he should be informed about.
105− // E.g.: a QTouchEvent might have three touches but a given item might be interested in only
106− // one of them. So he will get a UnownedTouchEvent from this QTouchEvent containing only that
107− // touch point.
108− QHash<QQuickItem*, QList<int>> touchIdsForItems;
109−
110− // Build touchIdsForItems
111− m_touchInfoPool.forEach([&](Pool<TouchInfo>::Iterator &touchInfo) {
112− if (touchInfo->isOwned() && touchInfo->watchers.isEmpty())
113− return true;
114−
115− for (int j = 0; j < updatedTouchPoints.count(); ++j) {
116− if (updatedTouchPoints[j].id() == touchInfo->id) {
117− if (!touchInfo->isOwned()) {
118− for (int i = 0; i < touchInfo->candidates.count(); ++i) {
119− CandidateInfo &candidate = touchInfo->candidates[i];
120− Q_ASSERT(!candidate.item.isNull());
121− if (candidate.state != CandidateInfo::InterimOwner) {
122− touchIdsForItems[candidate.item.data()].append(touchInfo->id);
123− }
124− }
125− }
126−
127− const QList<QPointer<QQuickItem>> &watchers = touchInfo->watchers;
128− for (int i = 0; i < watchers.count(); ++i) {
129− if (!watchers[i].isNull()) {
130− touchIdsForItems[watchers[i].data()].append(touchInfo->id);
131− }
132− }
133−
134− return true;
135− }
136− }
137−
138− return true;
139− });
140−
141− // TODO: Consider what happens if an item calls any of TouchRegistry's public methods
142− // from the event handler callback.
143− m_inDispatchLoop = true;
144− auto it = touchIdsForItems.constBegin();
145− while (it != touchIdsForItems.constEnd()) {
146− QQuickItem *item = it.key();
147− const QList<int> &touchIds = it.value();
148− dispatchPointsToItem(event, touchIds, item);
149− ++it;
150− };
151− m_inDispatchLoop = false;
152−}
153−
154−void TouchRegistry::freeEndedTouchInfos()
155−{
156− m_touchInfoPool.forEach([&](Pool<TouchInfo>::Iterator &touchInfo) {
157− if (touchInfo->ended()) {
158− m_touchInfoPool.freeSlot(touchInfo);
159− }
160− return true;
161− });
162−}
163−
164−/*
165− Extracts the touches with the given touchIds from event and send them in a
166− UnownedTouchEvent to the given item
167− */
168−void TouchRegistry::dispatchPointsToItem(const QTouchEvent *event, const QList<int> &touchIds,
169− QQuickItem *item)
170−{
171− Qt::TouchPointStates touchPointStates = 0;
172− QList<QTouchEvent::TouchPoint> touchPoints;
173−
174− const QList<QTouchEvent::TouchPoint> &allTouchPoints = event->touchPoints();
175−
176− QTransform windowToCandidateTransform = QQuickItemPrivate::get(item)->windowToItemTransform();
177− QMatrix4x4 windowToCandidateMatrix(windowToCandidateTransform);
178−
179− for (int i = 0; i < allTouchPoints.count(); ++i) {
180− const QTouchEvent::TouchPoint &originalTouchPoint = allTouchPoints[i];
181− if (touchIds.contains(originalTouchPoint.id())) {
182− QTouchEvent::TouchPoint touchPoint = originalTouchPoint;
183−
184− translateTouchPointFromScreenToWindowCoords(touchPoint);
185−
186− // Set the point's local coordinates to that of the item
187− touchPoint.setRect(windowToCandidateTransform.mapRect(touchPoint.sceneRect()));
188− touchPoint.setStartPos(windowToCandidateTransform.map(touchPoint.startScenePos()));
189− touchPoint.setLastPos(windowToCandidateTransform.map(touchPoint.lastScenePos()));
190− touchPoint.setVelocity(windowToCandidateMatrix.mapVector(touchPoint.velocity()).toVector2D());
191−
192− touchPoints.append(touchPoint);
193− touchPointStates |= touchPoint.state();
194− }
195− }
196−
197− QTouchEvent *eventForItem = new QTouchEvent(event->type(),
198− event->device(),
199− event->modifiers(),
200− touchPointStates,
201− touchPoints);
202− eventForItem->setWindow(event->window());
203− eventForItem->setTimestamp(event->timestamp());
204− eventForItem->setTarget(event->target());
205−
206− UnownedTouchEvent unownedTouchEvent(eventForItem);
207−
208− #if TOUCHREGISTRY_DEBUG
209− UG_DEBUG << "Sending unowned" << qPrintable(touchEventToString(eventForItem))
210− << "to" << item;
211− #endif
212−
213− QCoreApplication::sendEvent(item, &unownedTouchEvent);
214−}
215−
216−void TouchRegistry::translateTouchPointFromScreenToWindowCoords(QTouchEvent::TouchPoint &touchPoint)
217−{
218− touchPoint.setScreenRect(touchPoint.sceneRect());
219− touchPoint.setStartScreenPos(touchPoint.startScenePos());
220− touchPoint.setLastScreenPos(touchPoint.lastScenePos());
221−
222− touchPoint.setSceneRect(touchPoint.rect());
223− touchPoint.setStartScenePos(touchPoint.startPos());
224− touchPoint.setLastScenePos(touchPoint.lastPos());
225−}
226−
227−bool TouchRegistry::eventFilter(QObject *watched, QEvent *event)
228−{
229− Q_UNUSED(watched);
230−
231− switch (event->type()) {
232− case QEvent::TouchBegin:
233− case QEvent::TouchUpdate:
234− case QEvent::TouchEnd:
235− case QEvent::TouchCancel:
236− update(static_cast<QTouchEvent*>(event));
237− break;
238− default:
239− // do nothing
240− break;
241− }
242−
243− // Do not filter out the event. i.e., let it be handled further as
244− // we're just monitoring events
245− return false;
246−}
247−
248−void TouchRegistry::addCandidateOwnerForTouch(int id, QQuickItem *candidate)
249−{
250− #if TOUCHREGISTRY_DEBUG
251− UG_DEBUG << "addCandidateOwnerForTouch id" << id << "candidate" << candidate;
252− #endif
253−
254− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
255− if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
256−
257− if (touchInfo->isOwned()) {
258− qWarning("TouchRegistry: trying to add candidate owner for a touch that's already owned");
259− return;
260− }
261−
262− // TODO: Check if candidate already exists
263−
264− CandidateInfo candidateInfo;
265− candidateInfo.state = CandidateInfo::Undecided;
266− candidateInfo.item = candidate;
267− candidateInfo.inactivityTimer = new CandidateInactivityTimer(id, candidate,
268− m_timerFactory->createTimer(),
269− this);
270− connect(candidateInfo.inactivityTimer, &CandidateInactivityTimer::candidateDefaulted,
271− this, &TouchRegistry::rejectCandidateOwnerForTouch);
272−
273− touchInfo->candidates.append(candidateInfo);
274−
275− connect(candidate, &QObject::destroyed, this, [=](){ pruneNullCandidatesForTouch(id); });
276−}
277−
278−void TouchRegistry::addTouchWatcher(int touchId, QQuickItem *watcher)
279−{
280− #if TOUCHREGISTRY_DEBUG
281− UG_DEBUG << "addTouchWatcher id" << touchId << "watcher" << watcher;
282− #endif
283−
284− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(touchId);
285− if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
286−
287− // TODO: Check if watcher already exists
288−
289− touchInfo->watchers.append(watcher);
290−}
291−
292−void TouchRegistry::removeCandidateOwnerForTouch(int id, QQuickItem *candidate)
293−{
294− #if TOUCHREGISTRY_DEBUG
295− UG_DEBUG << "removeCandidateOwnerForTouch id" << id << "candidate" << candidate;
296− #endif
297−
298− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
299− if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
300−
301−
302− // TODO: check if the candidate is in fact the owner of the touch
303−
304− bool removed = false;
305− for (int i = 0; i < touchInfo->candidates.count() && !removed; ++i) {
306− if (touchInfo->candidates[i].item == candidate) {
307− removeCandidateOwnerForTouchByIndex(touchInfo, i);
308− removed = true;
309− }
310− }
311−}
312−
313−void TouchRegistry::pruneNullCandidatesForTouch(int touchId)
314−{
315− #if TOUCHREGISTRY_DEBUG
316− UG_DEBUG << "pruneNullCandidatesForTouch touchId" << touchId;
317− #endif
318−
319− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(touchId);
320− if (!touchInfo) {
321− // doesn't matter as touch is already gone.
322− return;
323− }
324−
325− int i = 0;
326− while (i < touchInfo->candidates.count()) {
327− if (touchInfo->candidates[i].item.isNull()) {
328− removeCandidateOwnerForTouchByIndex(touchInfo, i);
329− } else {
330− ++i;
331− }
332− }
333−}
334−
335−void TouchRegistry::removeCandidateOwnerForTouchByIndex(Pool<TouchRegistry::TouchInfo>::Iterator &touchInfo,
336− int candidateIndex)
337−{
338− // TODO: check if the candidate is in fact the owner of the touch
339−
340− Q_ASSERT(candidateIndex < touchInfo->candidates.count());
341−
342− if (candidateIndex == 0 && touchInfo->candidates[candidateIndex].state != CandidateInfo::Undecided) {
343− qCritical("TouchRegistry: touch owner is being removed.");
344− }
345− removeCandidateHelper(touchInfo, candidateIndex);
346−
347− if (candidateIndex == 0) {
348− // the top candidate has been removed. if the new top candidate
349− // wants the touch let him know he's now the owner.
350− if (touchInfo->isOwned()) {
351− touchInfo->notifyCandidatesOfOwnershipResolution();
352− }
353− }
354−
355− if (!m_inDispatchLoop && touchInfo->ended()) {
356− m_touchInfoPool.freeSlot(touchInfo);
357− }
358−}
359−
360−void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
361−{
362− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
363− if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
364−
365− Q_ASSERT(!touchInfo->isOwned());
366−
367− int candidateIndex = -1;
368− for (int i = 0; i < touchInfo->candidates.count(); ++i) {
369− CandidateInfo &candidateInfo = touchInfo->candidates[i];
370− if (candidateInfo.item == candidate) {
371− candidateInfo.state = CandidateInfo::Requested;
372− delete candidateInfo.inactivityTimer;
373− candidateInfo.inactivityTimer = nullptr;
374− candidateIndex = i;
375− break;
376− }
377− }
378− #if TOUCHREGISTRY_DEBUG
379− UG_DEBUG << "requestTouchOwnership id " << id << "candidate" << candidate << "index: " << candidateIndex;
380− #endif
381−
382− // add it as a candidate if not present yet
383− if (candidateIndex < 0) {
384− CandidateInfo candidateInfo;
385− candidateInfo.state = CandidateInfo::InterimOwner;
386− candidateInfo.item = candidate;
387− candidateInfo.inactivityTimer = nullptr;
388− touchInfo->candidates.append(candidateInfo);
389− // it's the last one
390− candidateIndex = touchInfo->candidates.count() - 1;
391− connect(candidate, &QObject::destroyed, this, [=](){ pruneNullCandidatesForTouch(id); });
392− }
393−
394− // If it's the top candidate it means it's now the owner. Let
395− // it know about it.
396− if (candidateIndex == 0) {
397− touchInfo->notifyCandidatesOfOwnershipResolution();
398− }
399−}
400−
401−Pool<TouchRegistry::TouchInfo>::Iterator TouchRegistry::findTouchInfo(int id)
402−{
403− Pool<TouchInfo>::Iterator touchInfo;
404−
405− m_touchInfoPool.forEach([&](Pool<TouchInfo>::Iterator &someTouchInfo) -> bool {
406− if (someTouchInfo->id == id) {
407− touchInfo = someTouchInfo;
408− return false;
409− } else {
410− return true;
411− }
412− });
413−
414− return touchInfo;
415−}
416−
417−
418−void TouchRegistry::rejectCandidateOwnerForTouch(int id, QQuickItem *candidate)
419−{
420− // NB: It's technically possible that candidate is a dangling pointer at this point.
421− // Although that would most likely be due to a bug in our code.
422− // In any case, only dereference it after it's confirmed that it indeed exists.
423−
424− #if TOUCHREGISTRY_DEBUG
425− UG_DEBUG << "rejectCandidateOwnerForTouch id" << id << "candidate" << (void*)candidate;
426− #endif
427−
428− Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
429− if (!touchInfo) {
430− #if TOUCHREGISTRY_DEBUG
431− UG_DEBUG << "Failed to find TouchInfo for id" << id;
432− #endif
433− return;
434− }
435−
436− int rejectedCandidateIndex = -1;
437−
438− // Check if the given candidate is valid and still undecided
439− for (int i = 0; i < touchInfo->candidates.count() && rejectedCandidateIndex == -1; ++i) {
440− CandidateInfo &candidateInfo = touchInfo->candidates[i];
441− if (candidateInfo.item == candidate) {
442− Q_ASSERT(i > 0 || candidateInfo.state == CandidateInfo::Undecided);
443− if (i == 0 && candidateInfo.state != CandidateInfo::Undecided) {
444− qCritical() << "TouchRegistry: Can't reject item (" << (void*)candidate
445− << ") as it already owns touch" << id;
446− return;
447− } else {
448− // we found the guy and it's all fine.
449− rejectedCandidateIndex = i;
450− }
451− }
452− }
453−
454− // If we reached this point it's because the given candidate exists and is indeed undecided.
455−
456− Q_ASSERT(rejectedCandidateIndex >= 0 && rejectedCandidateIndex < touchInfo->candidates.size());
457−
458− {
459− TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
460− QCoreApplication::sendEvent(candidate, &lostOwnershipEvent);
461− }
462−
463− removeCandidateHelper(touchInfo, rejectedCandidateIndex);
464−
465− if (rejectedCandidateIndex == 0) {
466− // the top candidate has been removed. if the new top candidate
467− // wants the touch let him know he's now the owner.
468− if (touchInfo->isOwned()) {
469− touchInfo->notifyCandidatesOfOwnershipResolution();
470− }
471− }
472−}
473−
474−void TouchRegistry::removeCandidateHelper(Pool<TouchInfo>::Iterator &touchInfo, int candidateIndex)
475−{
476− {
477− CandidateInfo &candidateInfo = touchInfo->candidates[candidateIndex];
478−
479− delete candidateInfo.inactivityTimer;
480− candidateInfo.inactivityTimer = nullptr;
481−
482− if (candidateInfo.item) {
483− disconnect(candidateInfo.item.data(), nullptr, this, nullptr);
484− }
485− }
486− touchInfo->candidates.removeAt(candidateIndex);
487−}
488−
489−////////////////////////////////////// TouchRegistry::TouchInfo ////////////////////////////////////
490−
491−TouchRegistry::TouchInfo::TouchInfo(int id)
492−{
493− init(id);
494−}
495−
496−void TouchRegistry::TouchInfo::reset()
497−{
498− id = -1;
499−
500− for (int i = 0; i < candidates.count(); ++i) {
501− CandidateInfo &candidate = candidates[i];
502− delete candidate.inactivityTimer;
503− candidate.inactivityTimer.clear(); // shoundn't be needed but anyway...
504− }
505−}
506−
507−void TouchRegistry::TouchInfo::init(int id)
508−{
509− this->id = id;
510− physicallyEnded = false;
511− candidates.clear();
512− watchers.clear();
513−}
514−
515−bool TouchRegistry::TouchInfo::isOwned() const
516−{
517− return !candidates.isEmpty() && candidates.first().state != CandidateInfo::Undecided;
518−}
519−
520−bool TouchRegistry::TouchInfo::ended() const
521−{
522− Q_ASSERT(isValid());
523− return physicallyEnded && (isOwned() || candidates.isEmpty());
524−}
525−
526−void TouchRegistry::TouchInfo::notifyCandidatesOfOwnershipResolution()
527−{
528− Q_ASSERT(isOwned());
529−
530− #if TOUCHREGISTRY_DEBUG
531− UG_DEBUG << "sending TouchOwnershipEvent(id =" << id
532− << " gained) to candidate" << candidates[0].item;
533− #endif
534−
535− // need to take a copy of the item list in case
536− // we call back in to remove candidate during the lost ownership event.
537− QList<QPointer<QQuickItem>> items;
538− Q_FOREACH(const CandidateInfo& info, candidates) {
539− items << info.item;
540− }
541−
542− TouchOwnershipEvent gainedOwnershipEvent(id, true /*gained*/);
543− QCoreApplication::sendEvent(items[0], &gainedOwnershipEvent);
544−
545− TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
546− for (int i = 1; i < items.count(); ++i) {
547− #if TOUCHREGISTRY_DEBUG
548− UG_DEBUG << "sending TouchOwnershipEvent(id =" << id << " lost) to candidate"
549− << items[i];
550− #endif
551− QCoreApplication::sendEvent(items[i], &lostOwnershipEvent);
552− }
553−}
libs/UbuntuGestures/TouchRegistry.hdeleted−201
@@ -1,201 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UNITY_TOUCHREGISTRY_H
18−#define UNITY_TOUCHREGISTRY_H
19−
20−#include <QQuickItem>
21−#include <QObject>
22−#include <QPointer>
23−#include <QTouchEvent>
24−#include <QVector>
25−
26−#include "UbuntuGesturesGlobal.h"
27−#include "CandidateInactivityTimer.h"
28−#include "Timer.h"
29−#include "Pool.h"
30−
31−namespace UbuntuGestures {
32− class AbstractTimerFactory;
33−}
34−
35−/*
36− Where the ownership of touches is registered.
37−
38− Singleton used for adding a touch point ownership model analogous to the one
39− described in the XInput 2.2 protocol[1] on top of the existing input dispatch logic in QQuickWindow.
40−
41− It provides a much more flexible and powerful way of dealing with pointer ownership than the existing
42− mechanisms in Qt. Namely QQuickItem::grabTouchPoints, QuickItem::keepTouchGrab,
43− QQuickItem::setFiltersChildMouseEvents, QQuickItem::ungrabTouchPoints and QQuickItem::touchUngrabEvent.
44−
45− Usage:
46−
47− 1- An item receives a a new touch point. If he's not sure whether he wants it yet, he calls:
48− TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, this);
49− touchEvent->ignore();
50− Ignoring the event is crucial so that it can be seen by other interested parties, which will
51− behave similarly.
52−
53− 2- That item will then start receiving UnownedTouchEvents for that touch from step 1. Once he's
54− made a decision he calls either:
55− TouchRegistry::instance()->requestTouchOwnership(touchId, this);
56− If he wants the touch point or:
57− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
58−  if he does not want it.
59−
60− Candidates are put in a priority queue. The first one to call addCandidateOwnerForTouch() will
61− take precedence over the others for receiving ownership over the touch point (from now on called
62− simply top-candidate).
63−
64− If the top-candidate calls requestTouchOwnership() he will immediately receive a
65− TouchOwnershipEvent(gained=true) for that touch point. He can then safely call
66− QQuickItem::grabTouchPoints to actually get the owned touch points. The other candidates
67− will receive TouchOwnershipEvent(gained=false) and will no longer receive UnownedTouchEvents
68− for that touch point. They will have to undo whatever action they were performing with that
69− touch point.
70−
71− But if the top-candidate calls removeCandidateOwnerForTouch() instead, he's popped from the
72− candidacy queue and ownership is given to the new top-most candidate if he has already
73− made his decision, that is.
74−
75− The TouchRegistry cannot enforce the results of this pointer ownership negotiation (i.e.,
76− who gets to grab the touch points) as that would clash with QQuickWindow's input event
77− dispatching logic. The candidates have to respect the decision and grab the touch points
78− themselves.
79−
80− If an item wants ownership over touches as soon as he receives the TouchBegin for them, his step 1
81− would be instead:
82− TouchRegistry::instance()->requestTouchOwnership(touchId, this);
83− touchEvent->accept();
84− He won't get any UnownedTouchEvent for that touch as he is already the interim owner (ie, QQuickWindow
85− will keep sending touch updates to him already). Eventually he will be notified once ownership has
86− been granted to him (from TouchRegistry perspective), from which point onwards he could safely assume
87− other TouchRegistry users wouldn't snatch this touch away from him.
88−
89− Items oblivious to TouchRegistry will lose their touch points without warning, just like in plain Qt.
90−
91− [1] - http://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt (see multitouch-ownership)
92− */
93−class UBUNTUGESTURES_EXPORT TouchRegistry : public QObject
94−{
95− Q_OBJECT
96−public:
97− virtual ~TouchRegistry();
98−
99− // Returns a pointer to the application's TouchRegistry instance.
100− static TouchRegistry *instance();
101−
102− void update(const QTouchEvent *event);
103−
104− // Calls update() if the given event is a QTouchEvent
105− bool eventFilter(QObject *watched, QEvent *event) override;
106−
107− // An item that might later request ownership over the given touch point.
108− // He will be kept informed about that touch point through UnownedTouchEvents
109− // All candidates must eventually decide whether they want to own the touch point
110− // or not. That decision is informed through requestTouchOwnership() or
111− // removeCandidateOwnerForTouch()
112− void addCandidateOwnerForTouch(int id, QQuickItem *candidate);
113−
114− // The same as rejecting ownership of a touch
115− void removeCandidateOwnerForTouch(int id, QQuickItem *candidate);
116−
117− // The candidate object wants to be the owner of the touch with the given id.
118− // If he's currently the oldest/top-most candidate, he will get an ownership
119− // event immediately. If not, he will get ownership if (or once) he becomes the
120− // top-most candidate.
121− void requestTouchOwnership(int id, QQuickItem *candidate);
122−
123− // An item that has no interest (effective or potential) in owning a touch point
124− // but would nonetheless like to be kept up-to-date on its state.
125− void addTouchWatcher(int touchId, QQuickItem *watcherItem);
126−
127− // Useful for tests, where you should use fake timers
128− void setTimerFactory(UbuntuGestures::AbstractTimerFactory *timerFactory);
129−
130−private Q_SLOTS:
131− void rejectCandidateOwnerForTouch(int id, QQuickItem *candidate);
132−
133−private:
134− // Only instance() can cronstruct one
135− TouchRegistry(QObject *parent = nullptr);
136−
137− class CandidateInfo {
138− public:
139− enum {
140− // A candidate owner that doesn't yet know for sure whether he wants the touch point
141− // (gesture recognition is stilll going on)
142− Undecided = 0,
143− // A candidate owner that wants the touch but hasn't been granted it yet,
144− // most likely because there's an undecided candidate with higher priority
145− Requested = 1,
146− // An item that is the interim owner of the touch, receiving QTouchEvents of it
147− // from QQuickWindow. Ie, it's the actual touch owner from Qt's point of view.
148− // It wants to keep its touch ownership but hasn't been granted it by TouchRegistry
149− // yet because of undecided candidates higher up.
150− InterimOwner = 2
151− } state;
152− QPointer<QQuickItem> item;
153− QPointer<UbuntuGestures::CandidateInactivityTimer> inactivityTimer;
154− };
155−
156− class TouchInfo {
157− public:
158− TouchInfo() : id(-1) {}
159− TouchInfo(int id);
160− bool isValid() const { return id >= 0; }
161− void reset();
162− void init(int id);
163− int id;
164− bool physicallyEnded;
165− bool isOwned() const;
166− bool ended() const;
167− void notifyCandidatesOfOwnershipResolution();
168−
169− // TODO optimize storage (s/QList/Pool)
170− QList<CandidateInfo> candidates;
171− QList<QPointer<QQuickItem>> watchers;
172− };
173−
174− void pruneNullCandidatesForTouch(int touchId);
175− void removeCandidateOwnerForTouchByIndex(Pool<TouchInfo>::Iterator &touchInfo, int candidateIndex);
176− void removeCandidateHelper(Pool<TouchInfo>::Iterator &touchInfo, int candidateIndex);
177−
178− Pool<TouchInfo>::Iterator findTouchInfo(int id);
179−
180− void deliverTouchUpdatesToUndecidedCandidatesAndWatchers(const QTouchEvent *event);
181−
182− static void translateTouchPointFromScreenToWindowCoords(QTouchEvent::TouchPoint &touchPoint);
183−
184− static void dispatchPointsToItem(const QTouchEvent *event, const QList<int> &touchIds,
185− QQuickItem *item);
186− void freeEndedTouchInfos();
187−
188− Pool<TouchInfo> m_touchInfoPool;
189−
190− // the singleton instance
191− static TouchRegistry *m_instance;
192−
193− bool m_inDispatchLoop;
194−
195− UbuntuGestures::AbstractTimerFactory *m_timerFactory;
196−
197− friend class tst_TouchRegistry;
198− friend class tst_DirectionalDragArea;
199−};
200−
201−#endif // UNITY_TOUCHREGISTRY_H
libs/UbuntuGestures/UbuntuGesturesGlobal.hdeleted−23
@@ -1,23 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include <QtCore/QtGlobal>
18−
19−#if defined(UBUNTUGESTURES_LIBRARY)
20−# define UBUNTUGESTURES_EXPORT Q_DECL_EXPORT
21−#else
22−# define UBUNTUGESTURES_EXPORT Q_DECL_IMPORT
23−#endif
libs/UbuntuGestures/UnownedTouchEvent.cppdeleted−39
@@ -1,39 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "UnownedTouchEvent.h"
18−
19−QEvent::Type UnownedTouchEvent::m_unownedTouchEventType = (QEvent::Type)-1;
20−
21−UnownedTouchEvent::UnownedTouchEvent(QTouchEvent *touchEvent)
22− : QEvent(unownedTouchEventType())
23− , m_touchEvent(touchEvent)
24−{
25−}
26−
27−QEvent::Type UnownedTouchEvent::unownedTouchEventType()
28−{
29− if (m_unownedTouchEventType == (QEvent::Type)-1) {
30− m_unownedTouchEventType = (QEvent::Type)registerEventType();
31− }
32−
33− return m_unownedTouchEventType;
34−}
35−
36−QTouchEvent *UnownedTouchEvent::touchEvent()
37−{
38− return m_touchEvent.data();
39−}
libs/UbuntuGestures/UnownedTouchEvent.hdeleted−45
@@ -1,45 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTU_UNOWNEDTOUCHEVENT_H
18−#define UBUNTU_UNOWNEDTOUCHEVENT_H
19−
20−#include <QTouchEvent>
21−#include <QScopedPointer>
22−#include "UbuntuGesturesGlobal.h"
23−
24−/*
25− A touch event with touch points that do not belong the item receiving it.
26−
27− See TouchRegistry::addCandidateOwnerForTouch and TouchRegistry::addTouchWatcher
28− */
29−class UBUNTUGESTURES_EXPORT UnownedTouchEvent : public QEvent
30−{
31−public:
32− UnownedTouchEvent(QTouchEvent *touchEvent);
33− static Type unownedTouchEventType();
34−
35− // TODO: It might be cleaner to store the information directly in UnownedTouchEvent
36− // instead of carrying around a synthesized QTouchEvent. But the latter option
37− // is very convenient.
38− QTouchEvent *touchEvent();
39−
40−private:
41− static Type m_unownedTouchEventType;
42− QScopedPointer<QTouchEvent> m_touchEvent;
43−};
44−
45−#endif // UBUNTU_UNOWNEDTOUCHEVENT_H
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/Cursor/CMakeLists.txt+2−1
@@ -8,8 +8,9 @@ include_directories(
88
99set(QMLPLUGIN_SRC
1010 plugin.cpp
11− MousePointer.cpp
11+ CursorImageInfo.cpp
1212 CursorImageProvider.cpp
13+ MousePointer.cpp
1314 # We need to run moc on this header
1415 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirMousePointerInterface.h
1516 )
plugins/Cursor/Cursor.qml+21−5
@@ -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
55 * it under the terms of the GNU General Public License as published by
@@ -15,14 +15,30 @@
1515 */
1616
1717import QtQuick 2.4
18−import Cursor 1.0 // For MousePointer
18+import Cursor 1.1
1919
2020MousePointer {
2121 id: mousePointer
2222
23− Image {
24− x: -mousePointer.hotspotX
25− y: -mousePointer.hotspotY
23+ CursorImageInfo {
24+ id: imageInfo
25+ themeName: mousePointer.themeName
26+ cursorName: mousePointer.cursorName
27+ }
28+
29+ AnimatedSprite {
30+ x: -imageInfo.hotspot.x
31+ y: -imageInfo.hotspot.y
2632 source: "image://cursor/" + mousePointer.themeName + "/" + mousePointer.cursorName
33+
34+ interpolate: false
35+
36+ width: imageInfo.frameWidth
37+ height: imageInfo.frameHeight
38+
39+ frameCount: imageInfo.frameCount
40+ frameDuration: imageInfo.frameDuration
41+ frameWidth: imageInfo.frameWidth
42+ frameHeight: imageInfo.frameHeight
2743 }
2844}
plugins/Cursor/Cursor.qmltypesdeleted−78
@@ -1,78 +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 Cursor 1.0 plugins'
8−
9−Module {
10− Component {
11− name: "MirMousePointerInterface"
12− defaultProperty: "data"
13− prototype: "QQuickItem"
14− Property { name: "cursorName"; type: "string"; isReadonly: true }
15− Property { name: "themeName"; type: "string"; isReadonly: true }
16− Property { name: "hotspotX"; type: "double"; isReadonly: true }
17− Property { name: "hotspotY"; type: "double"; isReadonly: true }
18− Signal {
19− name: "cursorNameChanged"
20− Parameter { name: "name"; type: "string" }
21− }
22− Signal {
23− name: "themeNameChanged"
24− Parameter { name: "name"; type: "string" }
25− }
26− Signal {
27− name: "hotspotXChanged"
28− Parameter { name: "value"; type: "double" }
29− }
30− Signal {
31− name: "hotspotYChanged"
32− Parameter { name: "value"; type: "double" }
33− }
34− Method {
35− name: "handleMouseEvent"
36− Parameter { name: "timestamp"; type: "ulong" }
37− Parameter { name: "movement"; type: "QPointF" }
38− Parameter { name: "buttons"; type: "Qt::MouseButtons" }
39− Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
40− }
41− Method {
42− name: "handleWheelEvent"
43− Parameter { name: "timestamp"; type: "ulong" }
44− Parameter { name: "angleDelta"; type: "QPoint" }
45− Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
46− }
47− }
48− Component {
49− name: "MousePointer"
50− defaultProperty: "data"
51− prototype: "MirMousePointerInterface"
52− exports: ["Cursor/MousePointer 1.0"]
53− exportMetaObjectRevisions: [0]
54− Signal {
55− name: "pushedLeftBoundary"
56− Parameter { name: "amount"; type: "double" }
57− Parameter { name: "buttons"; type: "Qt::MouseButtons" }
58− }
59− Signal {
60− name: "pushedRightBoundary"
61− Parameter { name: "amount"; type: "double" }
62− Parameter { name: "buttons"; type: "Qt::MouseButtons" }
63− }
64− Method {
65− name: "handleMouseEvent"
66− Parameter { name: "timestamp"; type: "ulong" }
67− Parameter { name: "movement"; type: "QPointF" }
68− Parameter { name: "buttons"; type: "Qt::MouseButtons" }
69− Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
70− }
71− Method {
72− name: "handleWheelEvent"
73− Parameter { name: "timestamp"; type: "ulong" }
74− Parameter { name: "angleDelta"; type: "QPoint" }
75− Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
76− }
77− }
78−}
plugins/Cursor/CursorImageInfo.cppnew file+96
@@ -0,0 +1,96 @@
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 "CursorImageInfo.h"
18+
19+CursorImageInfo::CursorImageInfo(QObject *parent)
20+ : QObject(parent)
21+{
22+}
23+
24+void CursorImageInfo::setCursorName(const QString &cursorName)
25+{
26+ if (cursorName != m_cursorName) {
27+ m_cursorName = cursorName;
28+ update();
29+ Q_EMIT cursorNameChanged();
30+ }
31+}
32+
33+void CursorImageInfo::setThemeName(const QString &themeName)
34+{
35+ if (m_themeName != themeName) {
36+ m_themeName = themeName;
37+ update();
38+ Q_EMIT themeNameChanged();
39+ }
40+}
41+
42+void CursorImageInfo::update()
43+{
44+ m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName);
45+
46+ Q_EMIT hotspotChanged();
47+ Q_EMIT frameWidthChanged();
48+ Q_EMIT frameHeightChanged();
49+ Q_EMIT frameCountChanged();
50+ Q_EMIT frameDurationChanged();
51+}
52+
53+QPoint CursorImageInfo::hotspot() const
54+{
55+ if (m_cursorImage) {
56+ return m_cursorImage->hotspot;
57+ } else {
58+ return QPoint();
59+ }
60+}
61+
62+qreal CursorImageInfo::frameWidth() const
63+{
64+ if (m_cursorImage) {
65+ return m_cursorImage->frameWidth;
66+ } else {
67+ return 0;
68+ }
69+}
70+
71+qreal CursorImageInfo::frameHeight() const
72+{
73+ if (m_cursorImage) {
74+ return m_cursorImage->frameHeight;
75+ } else {
76+ return 0;
77+ }
78+}
79+
80+int CursorImageInfo::frameCount() const
81+{
82+ if (m_cursorImage) {
83+ return m_cursorImage->frameCount;
84+ } else {
85+ return 0;
86+ }
87+}
88+
89+int CursorImageInfo::frameDuration() const
90+{
91+ if (m_cursorImage) {
92+ return m_cursorImage->frameDuration;
93+ } else {
94+ return 0;
95+ }
96+}
plugins/Cursor/CursorImageInfo.hnew file+72
@@ -0,0 +1,72 @@
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+#ifndef CURSOR_IMAGE_INFO_H
18+#define CURSOR_IMAGE_INFO_H
19+
20+#include "CursorImageProvider.h"
21+
22+#include <QObject>
23+#include <QString>
24+
25+class CursorImageInfo : public QObject
26+{
27+ Q_OBJECT
28+
29+ Q_PROPERTY(QString themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
30+ Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
31+
32+ Q_PROPERTY(QPoint hotspot READ hotspot NOTIFY hotspotChanged)
33+ Q_PROPERTY(qreal frameWidth READ frameWidth NOTIFY frameWidthChanged)
34+ Q_PROPERTY(qreal frameHeight READ frameHeight NOTIFY frameHeightChanged)
35+ Q_PROPERTY(int frameCount READ frameCount NOTIFY frameCountChanged)
36+ Q_PROPERTY(int frameDuration READ frameDuration NOTIFY frameDurationChanged)
37+
38+public:
39+ CursorImageInfo(QObject *parent = nullptr);
40+
41+ QString themeName() const { return m_themeName; }
42+ void setThemeName(const QString &);
43+
44+ QString cursorName() const { return m_cursorName; }
45+ void setCursorName(const QString &);
46+
47+ QPoint hotspot() const;
48+ qreal frameWidth() const;
49+ qreal frameHeight() const;
50+ int frameCount() const;
51+ int frameDuration() const;
52+
53+Q_SIGNALS:
54+ void themeNameChanged();
55+ void cursorNameChanged();
56+ void hotspotChanged();
57+ void frameWidthChanged();
58+ void frameHeightChanged();
59+ void frameCountChanged();
60+ void frameDurationChanged();
61+
62+private Q_SLOTS:
63+ void update();
64+
65+private:
66+ QString m_themeName;
67+ QString m_cursorName;
68+
69+ CursorImage *m_cursorImage{nullptr};
70+};
71+
72+#endif // CURSOR_IMAGE_INFO_H
plugins/Cursor/CursorImageProvider.cpp+51−22
@@ -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
@@ -46,6 +46,9 @@ BuiltInCursorImage::BuiltInCursorImage()
4646 qimage.fill(Qt::transparent);
4747 QPainter imagePainter(&qimage);
4848
49+ frameWidth = qimage.width();
50+ frameHeight = qimage.height();
51+
4952 QSvgRenderer *svgRenderer = new QSvgRenderer(QByteArray(svgString));
5053 svgRenderer->render(&imagePainter);
5154 delete svgRenderer;
@@ -59,6 +62,8 @@ BlankCursorImage::BlankCursorImage()
5962{
6063 qimage = QImage(1, 1, QImage::Format_ARGB32);
6164 qimage.fill(Qt::transparent);
65+ frameWidth = qimage.width();
66+ frameHeight = qimage.height();
6267}
6368
6469/////
@@ -69,40 +74,74 @@ CustomCursorImage::CustomCursorImage(const QCursor &cursor)
6974{
7075 qimage = cursor.pixmap().toImage();
7176 hotspot = cursor.hotSpot();
77+ frameWidth = qimage.width();
78+ frameHeight = qimage.height();
7279}
7380
7481/////
7582// XCursorImage
7683
7784XCursorImage::XCursorImage(const QString &theme, const QString &file)
78− : xcursorImages(nullptr)
7985{
8086 // TODO: Consider grid unit value
8187 // Hardcoding to a medium size for now
8288 int preferredCursorHeightPx = 32;
8389
84− xcursorImages = XcursorLibraryLoadImages(QFile::encodeName(file), QFile::encodeName(theme),
90+ XcursorImages *xcursorImages = XcursorLibraryLoadImages(QFile::encodeName(file), QFile::encodeName(theme),
8591 preferredCursorHeightPx);
86− if (!xcursorImages) {
92+ if (!xcursorImages || xcursorImages->nimage == 0) {
8793 return;
8894 }
8995
90− // Just take the first one. It will have multiple images in case of an animated cursor.
91− // TODO: Support animated cursors
92− if ( xcursorImages->nimage > 0) {
93− XcursorImage *xcursorImage = xcursorImages->images[0];
96+ frameCount = xcursorImages->nimage;
9497
95− qimage = QImage((uchar*)xcursorImage->pixels,
96− xcursorImage->width, xcursorImage->height, QImage::Format_ARGB32);
98+ for (int i = 0; i < xcursorImages->nimage; ++i) {
99+ XcursorImage *xcursorImage = xcursorImages->images[0];
100+ if (frameWidth < (int)xcursorImage->width) {
101+ frameWidth = xcursorImage->width;
102+ }
103+ if (frameHeight < (int)xcursorImage->height) {
104+ frameHeight = xcursorImage->height;
105+ }
106+ if (i == 0) {
107+ frameDuration = (int)xcursorImage->delay;
108+ } else {
109+ if (frameDuration != (int)xcursorImage->delay) {
110+ qWarning().nospace() << "CursorImageProvider: XCursorImage("<<theme<<","<<file<<") has"
111+ " varying delays in its animation. Animation won't look right.";
112+ }
113+ }
114+ }
97115
116+ {
117+ // Assume that the hotspot position does not animate
118+ XcursorImage *xcursorImage = xcursorImages->images[0];
98119 hotspot.setX(xcursorImage->xhot);
99120 hotspot.setY(xcursorImage->yhot);
100121 }
122+
123+ // Build the sprite as a single row of frames
124+ qimage = QImage(frameWidth*frameCount, frameHeight, QImage::Format_ARGB32);
125+ qimage.fill(Qt::transparent);
126+
127+ {
128+ QPainter painter(&qimage);
129+
130+ for (int i = 0; i < xcursorImages->nimage; ++i) {
131+ XcursorImage *xcursorImage = xcursorImages->images[i];
132+
133+ auto frameImage = QImage((uchar*)xcursorImage->pixels,
134+ xcursorImage->width, xcursorImage->height, QImage::Format_ARGB32);
135+
136+ painter.drawImage(QPoint(i*frameWidth, 0), frameImage);
137+ }
138+ }
139+
140+ XcursorImagesDestroy(xcursorImages);
101141}
102142
103143XCursorImage::~XCursorImage()
104144{
105− XcursorImagesDestroy(xcursorImages);
106145}
107146
108147/////
@@ -205,16 +244,6 @@ QImage CursorImageProvider::requestImage(const QString &cursorThemeAndName, QSiz
205244 return cursorImage->qimage;
206245}
207246
208−QPoint CursorImageProvider::hotspot(const QString &themeName, const QString &cursorName)
209−{
210− CursorImage *cursorImage = fetchCursor(themeName, cursorName);
211− if (cursorImage) {
212− return cursorImage->hotspot;
213− } else {
214− return QPoint(0,0);
215− }
216−}
217−
218247CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndName)
219248{
220249 QString themeName;
@@ -271,7 +300,7 @@ CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, co
271300{
272301 if (cursorName == QLatin1String("blank")) {
273302 return &m_blankCursorImage;
274− } else if (cursorName == QLatin1String("custom")) {
303+ } else if (cursorName.startsWith(QLatin1String("custom"))) {
275304 return m_customCursorImage.data();
276305 } else {
277306 QMap<QString, CursorImage*> &themeCursors = m_cursors[themeName];
plugins/Cursor/CursorImageProvider.h+12−4
@@ -31,15 +31,23 @@ public:
3131 virtual ~CursorImage() {}
3232
3333 QImage qimage;
34+
35+ // TODO: consider if there's a need to animate the hotspot
36+ // ie, if there's a need to make it an array of points, one for each frame.
37+ // Maybe no single xcursor (or at least the ones we know of or use)
38+ // vary its hotspot position through its animation.
3439 QPoint hotspot;
40+
41+ int frameWidth{0};
42+ int frameHeight{0};
43+ int frameCount{1};
44+ int frameDuration{40};
3545};
3646
3747class XCursorImage : public CursorImage {
3848public:
3949 XCursorImage(const QString &theme, const QString &file);
4050 virtual ~XCursorImage();
41−
42− XcursorImages *xcursorImages;
4351};
4452
4553class BuiltInCursorImage : public CursorImage {
@@ -68,16 +76,16 @@ public:
6876
6977 QImage requestImage(const QString &cursorName, QSize *size, const QSize &requestedSize) override;
7078
71− QPoint hotspot(const QString &themeName, const QString &cursorName);
79+ CursorImage *fetchCursor(const QString &themeName, const QString &cursorName);
7280
7381 void setCustomCursor(const QCursor &customCursor);
7482
7583private:
7684 CursorImage *fetchCursor(const QString &cursorThemeAndName);
77− CursorImage *fetchCursor(const QString &themeName, const QString &cursorName);
7885 CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName);
7986
8087 // themeName -> (cursorName -> cursorImage)
88+ // TODO: discard old, unused, cursors
8189 QMap<QString, QMap<QString, CursorImage*> > m_cursors;
8290
8391 QScopedPointer<CursorImage> m_builtInCursorImage;
plugins/Cursor/MousePointer.cpp+37−27
@@ -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
@@ -29,10 +29,7 @@ MousePointer::MousePointer(QQuickItem *parent)
2929 : MirMousePointerInterface(parent)
3030 , m_cursorName(QStringLiteral("left_ptr"))
3131 , m_themeName(QStringLiteral("default"))
32− , m_hotspotX(0)
33− , m_hotspotY(0)
3432{
35− updateHotspot();
3633}
3734
3835void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::MouseButtons buttons,
@@ -46,7 +43,12 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
4643 Q_EMIT mouseMoved();
4744 }
4845
49− 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();
5052 if (newX < 0) {
5153 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
5254 newX = 0;
@@ -56,7 +58,7 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
5658 }
5759 setX(newX);
5860
59− qreal newY = y() + movement.y();
61+ qreal newY = y() + appliedMovement.y();
6062 if (newY < 0) {
6163 newY = 0;
6264 } else if (newY > parentItem()->height()) {
@@ -89,8 +91,32 @@ void MousePointer::itemChange(ItemChange change, const ItemChangeData &value)
8991
9092void MousePointer::registerWindow(QWindow *window)
9193{
92− if (m_registeredWindow && window != m_registeredWindow) {
93− auto previousCursor = dynamic_cast<MirPlatformCursor*>(m_registeredWindow->screen()->handle()->cursor());
94+ if (window == m_registeredWindow) {
95+ return;
96+ }
97+
98+ if (m_registeredWindow) {
99+ m_registeredWindow->disconnect(this);
100+ }
101+
102+ m_registeredWindow = window;
103+
104+ if (m_registeredWindow) {
105+ connect(window, &QWindow::screenChanged, this, &MousePointer::registerScreen);
106+ registerScreen(window->screen());
107+ } else {
108+ registerScreen(nullptr);
109+ }
110+}
111+
112+void MousePointer::registerScreen(QScreen *screen)
113+{
114+ if (m_registeredScreen == screen) {
115+ return;
116+ }
117+
118+ if (m_registeredScreen) {
119+ auto previousCursor = dynamic_cast<MirPlatformCursor*>(m_registeredScreen->handle()->cursor());
94120 if (previousCursor) {
95121 previousCursor->setMousePointer(nullptr);
96122 } else {
@@ -98,10 +124,10 @@ void MousePointer::registerWindow(QWindow *window)
98124 }
99125 }
100126
101− m_registeredWindow = window;
127+ m_registeredScreen = screen;
102128
103− if (m_registeredWindow) {
104− auto cursor = dynamic_cast<MirPlatformCursor*>(window->screen()->handle()->cursor());
129+ if (m_registeredScreen) {
130+ auto cursor = dynamic_cast<MirPlatformCursor*>(m_registeredScreen->handle()->cursor());
105131 if (cursor) {
106132 cursor->setMousePointer(this);
107133 } else {
@@ -115,22 +141,6 @@ void MousePointer::setCursorName(const QString &cursorName)
115141 if (cursorName != m_cursorName) {
116142 m_cursorName = cursorName;
117143 Q_EMIT cursorNameChanged(m_cursorName);
118− updateHotspot();
119− }
120−}
121−
122−void MousePointer::updateHotspot()
123−{
124− QPoint newHotspot = CursorImageProvider::instance()->hotspot(m_themeName, m_cursorName);
125−
126− if (m_hotspotX != newHotspot.x()) {
127− m_hotspotX = newHotspot.x();
128− Q_EMIT hotspotXChanged(m_hotspotX);
129− }
130−
131− if (m_hotspotY != newHotspot.y()) {
132− m_hotspotY = newHotspot.y();
133− Q_EMIT hotspotYChanged(m_hotspotY);
134144 }
135145}
136146
plugins/Cursor/MousePointer.h+9−7
@@ -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
@@ -20,6 +20,7 @@
2020// Qt
2121#include <QPointer>
2222#include <QWindow>
23+#include <QScreen>
2324
2425// Unity API
2526#include <unity/shell/application/MirMousePointerInterface.h>
@@ -35,9 +36,6 @@ public:
3536 void setThemeName(const QString &themeName) override;
3637 QString themeName() const override { return m_themeName; }
3738
38− qreal hotspotX() const override { return m_hotspotX; }
39− qreal hotspotY() const override { return m_hotspotY; }
40−
4139 void setCustomCursor(const QCursor &) override;
4240
4341public Q_SLOTS:
@@ -53,15 +51,19 @@ Q_SIGNALS:
5351protected:
5452 void itemChange(ItemChange change, const ItemChangeData &value) override;
5553
54+private Q_SLOTS:
55+ void registerScreen(QScreen *screen);
56+
5657private:
5758 void registerWindow(QWindow *window);
58− void updateHotspot();
5959
6060 QPointer<QWindow> m_registeredWindow;
61+ QPointer<QScreen> m_registeredScreen;
6162 QString m_cursorName;
6263 QString m_themeName;
63− int m_hotspotX;
64− int m_hotspotY;
64+
65+ // Accumulated, unapplied, mouse movement.
66+ QPointF m_accumulatedMovement;
6567};
6668
6769#endif // MOUSEPOINTER_H
plugins/Cursor/plugin.cpp+4−2
@@ -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
55 * it under the terms of the GNU General Public License as published by
@@ -22,13 +22,15 @@
2222#include "plugin.h"
2323
2424// local
25+#include "CursorImageInfo.h"
2526#include "CursorImageProvider.h"
2627#include "MousePointer.h"
2728
2829void CursorPlugin::registerTypes(const char *uri)
2930{
3031 Q_ASSERT(uri == QLatin1String("Cursor"));
31− qmlRegisterType<MousePointer>(uri, 1, 0, "MousePointer");
32+ qmlRegisterType<CursorImageInfo>(uri, 1, 1, "CursorImageInfo");
33+ qmlRegisterType<MousePointer>(uri, 1, 1, "MousePointer");
3234}
3335
3436void CursorPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
plugins/Cursor/qmldir+1−1
@@ -1,3 +1,3 @@
11module Cursor
22plugin Cursor-qml
3−Cursor 1.0 Cursor.qml
3+Cursor 1.1 Cursor.qml
plugins/Dash/AudioProgressBar.qml+1−1
@@ -49,6 +49,6 @@ Item {
4949 rightMargin: maxWidth - (maxWidth * root.progress)
5050 }
5151 height: units.dp(2)
52− backgroundColor: UbuntuColors.orange
52+ backgroundColor: theme.palette.normal.activity
5353 }
5454}
plugins/Dash/CardCreator.js+127−76
@@ -59,75 +59,100 @@ var kBackgroundLoaderCode = 'Loader {\n\
5959 } \n\
6060 }\n';
6161
62+// %1 is the aspect of the UbuntuShape
63+var kArtUbuntuShapeCode = 'UbuntuShape { \n\
64+ anchors.fill: parent; \n\
65+ source: artImage; \n\
66+ sourceFillMode: UbuntuShape.PreserveAspectCrop; \n\
67+ radius: "medium"; \n\
68+ aspect: %1; \n\
69+ }';
70+
71+var kArtProportionalShapeCode = 'ProportionalShape { \n\
72+ anchors.left: parent.left; \n\
73+ anchors.right: parent.right; \n\
74+ source: artImage; \n\
75+ aspect: UbuntuShape.DropShadow; \n\
76+ }';
77+
6278// %1 is used as anchors of artShapeHolder
6379// %2 is used as image width
6480// %3 is used as image height
65−// %4 is whether the image or the Loader with the UbuntuShape/ProportionalShape should be visible
66−// %5 is used as aspect ratio fallback
67−// %6 is whether the loader should be asynchronous or not
81+// %4 is whether the image should be visible
82+// %5 is whether the loader should be asynchronous or not
83+// %6 is the shape code we want to use
6884// %7 is injected as code to artImage
6985// %8 is used as image fallback
7086var kArtShapeHolderCode = 'Item { \n\
7187 id: artShapeHolder; \n\
72− height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
73− width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width; \n\
88+ height: root.fixedArtShapeSize.height; \n\
89+ width: root.fixedArtShapeSize.width; \n\
7490 anchors { %1 } \n\
7591 Loader { \n\
7692 id: artShapeLoader; \n\
7793 objectName: "artShapeLoader"; \n\
7894 readonly property string cardArt: cardData && cardData["art"] || %8; \n\
95+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
7996 active: cardArt != ""; \n\
80− asynchronous: %6; \n\
97+ asynchronous: %5; \n\
8198 visible: status == Loader.Ready; \n\
8299 sourceComponent: Item { \n\
83100 id: artShape; \n\
84101 objectName: "artShape"; \n\
85102 visible: image.status == Image.Ready; \n\
86103 readonly property alias image: artImage; \n\
87− Loader { \n\
88− anchors.fill: parent; \n\
104+ %6 \n\
105+ width: root.fixedArtShapeSize.width; \n\
106+ height: root.fixedArtShapeSize.height; \n\
107+ CroppedImageMinimumSourceSize { \n\
108+ id: artImage; \n\
109+ objectName: "artImage"; \n\
110+ source: artShapeLoader.cardArt; \n\
111+ asynchronous: %5; \n\
89112 visible: %4; \n\
90− sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent; \n\
91− Component { \n\
92− id: artShapeShapeComponent; \n\
93− UbuntuShape { \n\
94− source: artImage; \n\
95− sourceFillMode: UbuntuShape.PreserveAspectCrop; \n\
96− radius: "medium"; \n\
97− aspect: { \n\
98− switch (root.artShapeStyle) { \n\
99− case "inset": return UbuntuShape.Inset; \n\
100− case "shadow": return UbuntuShape.DropShadow; \n\
101− default: \n\
102− case "flat": return UbuntuShape.Flat; \n\
103− } \n\
104− } \n\
105− } \n\
106− } \n\
107− Component { \n\
108− id: artShapeIconComponent; \n\
109− ProportionalShape { source: artImage; aspect: UbuntuShape.DropShadow; } \n\
110− } \n\
111− } \n\
112− readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1; \n\
113− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : %5; \n\
114− Component.onCompleted: { updateWidthHeightBindings(); } \n\
115− Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); } \n\
116− function updateWidthHeightBindings() { \n\
117− if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) { \n\
118− width = root.fixedArtShapeSize.width; \n\
119− height = root.fixedArtShapeSize.height; \n\
120− } else { \n\
121− width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width }); \n\
122− height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
123− } \n\
113+ width: %2; \n\
114+ height: %3; \n\
115+ %7 \n\
124116 } \n\
117+ } \n\
118+ } \n\
119+ }\n';
120+
121+// %1 is used as anchors of artShapeHolder
122+// %2 is used as image width
123+// %3 is used as image height
124+// %4 is whether the image should be visible
125+// %5 is whether the loader should be asynchronous or not
126+// %6 is the shape code we want to use
127+// %7 is injected as code to artImage
128+// %8 is used as image fallback
129+var kArtShapeHolderCodeCardToolCard = 'Item { \n\
130+ id: artShapeHolder; \n\
131+ height: artShapeLoader.height; \n\
132+ width: artShapeLoader.width; \n\
133+ anchors { %1 } \n\
134+ Loader { \n\
135+ id: artShapeLoader; \n\
136+ objectName: "artShapeLoader"; \n\
137+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
138+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
139+ active: cardArt != ""; \n\
140+ asynchronous: %5; \n\
141+ visible: status == Loader.Ready; \n\
142+ sourceComponent: Item { \n\
143+ id: artShape; \n\
144+ objectName: "artShape"; \n\
145+ visible: image.status == Image.Ready; \n\
146+ readonly property alias image: artImage; \n\
147+ %6 \n\
148+ width: image.status !== Image.Ready ? 0 : image.width; \n\
149+ height: image.status !== Image.Ready ? 0 : image.height; \n\
125150 CroppedImageMinimumSourceSize { \n\
126151 id: artImage; \n\
127152 objectName: "artImage"; \n\
128153 source: artShapeLoader.cardArt; \n\
129− asynchronous: %6; \n\
130− visible: !%4; \n\
154+ asynchronous: %5; \n\
155+ visible: %4; \n\
131156 width: %2; \n\
132157 height: %3; \n\
133158 %7 \n\
@@ -318,7 +343,7 @@ var kTouchdownCode = 'UbuntuShape { \n\
318343 id: touchdown; \n\
319344 objectName: "touchdown"; \n\
320345 anchors { %1 } \n\
321− visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed; \n\
346+ visible: root.pressed; \n\
322347 radius: "medium"; \n\
323348 borderSource: "radius_pressed.sci" \n\
324349 }\n';
@@ -412,7 +437,7 @@ function sanitizeColor(colorString) {
412437 return colorString;
413438}
414439
415−function cardString(template, components, isCardTool) {
440+function cardString(template, components, isCardTool, artShapeStyle) {
416441 var code;
417442
418443 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -420,19 +445,19 @@ function cardString(template, components, isCardTool) {
420445 code = 'AbstractButton { \n\
421446 id: root; \n\
422447 property var cardData; \n\
423− property string artShapeStyle: "inset"; \n\
424448 property string backgroundShapeStyle: "inset"; \n\
425449 property real fontScale: 1.0; \n\
426450 property var scopeStyle: null; \n\
427− %2\
428− property size fixedArtShapeSize: Qt.size(-1, -1); \n\
429451 readonly property string title: cardData && cardData["title"] || ""; \n\
430452 property bool showHeader: true; \n\
431453 implicitWidth: childrenRect.width; \n\
432454 enabled: %1; \n\
433455 \n'.arg(templateInteractive);
434456
435− code = code.arg(isCardTool ? "" : "property int fixedHeaderHeight: -1; \n");
457+ if (!isCardTool) {
458+ code += "property int fixedHeaderHeight: -1; \n\
459+ property size fixedArtShapeSize: Qt.size(-1, -1); \n";
460+ }
436461
437462 var hasArt = components["art"] && components["art"]["field"] || false;
438463 var hasSummary = components["summary"] || false;
@@ -491,47 +516,71 @@ function cardString(template, components, isCardTool) {
491516 if (hasArt) {
492517 code += 'readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);\n';
493518
519+ var artShapeAspect;
520+ if (isCardTool) {
521+ var artShapeAspect = components["art"] && components["art"]["aspect-ratio"] || 1;
522+ if (isNaN(artShapeAspect)) {
523+ artShapeAspect = 1;
524+ }
525+ } else {
526+ artShapeAspect = "(root.fixedArtShapeSize.width / root.fixedArtShapeSize.height)";
527+ }
528+
494529 var widthCode, heightCode;
495530 var artAnchors;
496531 if (isHorizontal) {
497532 artAnchors = 'left: parent.left';
498533 if (hasMascot || hasTitle) {
499− widthCode = 'height * artShape.aspect'
534+ widthCode = 'height * ' + artShapeAspect;
500535 heightCode = 'headerHeight + 2 * units.gu(1)';
501536 } else {
502537 // This side of the else is a bit silly, who wants an horizontal layout without mascot and title?
503538 // So we define a "random" height of the image height + 2 gu for the margins
504− widthCode = 'height * artShape.aspect'
539+ widthCode = 'height * ' + artShapeAspect
505540 heightCode = 'units.gu(7.625)';
506541 }
507542 } else {
508543 artAnchors = 'horizontalCenter: parent.horizontalCenter;';
509544 widthCode = 'root.width'
510− heightCode = 'width / artShape.aspect';
545+ heightCode = 'width / ' + artShapeAspect;
511546 }
512547
513− var aspectRatio = components["art"] && components["art"]["aspect-ratio"] || 1;
514− if (isNaN(aspectRatio)) {
515− aspectRatio = 1;
516− }
517548 var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
518549 fallback = encodeURI(fallback);
519550 var fallbackStatusCode = "";
520551 var fallbackURICode = '""';
521552 if (fallback !== "") {
522− // fallbackStatusCode has %6 in it because we want to substitute it for fallbackURICode
553+ // fallbackStatusCode has %8 in it because we want to substitute it for fallbackURICode
523554 // which in kArtShapeHolderCode is %8
524555 fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %8;';
525556 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
526557 }
527− code += kArtShapeHolderCode.arg(artAnchors)
528− .arg(widthCode)
529− .arg(heightCode)
530− .arg(isConciergeMode ? "false" : "true")
531− .arg(aspectRatio)
532− .arg(asynchronous)
533− .arg(fallbackStatusCode)
534− .arg(fallbackURICode);
558+ var artShapeHolderShapeCode;
559+ if (!isConciergeMode) {
560+ if (artShapeStyle === "icon") {
561+ artShapeHolderShapeCode = kArtProportionalShapeCode;
562+ } else {
563+ var artShapeHolderShapeAspect;
564+ switch (artShapeStyle) {
565+ case "inset": artShapeHolderShapeAspect = "UbuntuShape.Inset"; break;
566+ case "shadow": artShapeHolderShapeAspect = "UbuntuShape.DropShadow"; break;
567+ default:
568+ case "flat": artShapeHolderShapeAspect = "UbuntuShape.Flat"; break;
569+ }
570+ artShapeHolderShapeCode = kArtUbuntuShapeCode.arg(artShapeHolderShapeAspect);
571+ }
572+ } else {
573+ artShapeHolderShapeCode = "";
574+ }
575+ var artShapeHolderCode = isCardTool ? kArtShapeHolderCodeCardToolCard : kArtShapeHolderCode;
576+ code += artShapeHolderCode.arg(artAnchors)
577+ .arg(widthCode)
578+ .arg(heightCode)
579+ .arg(isConciergeMode ? "true" : "false")
580+ .arg(asynchronous)
581+ .arg(artShapeHolderShapeCode)
582+ .arg(fallbackStatusCode)
583+ .arg(fallbackURICode);
535584 } else {
536585 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
537586 }
@@ -882,15 +931,17 @@ function cardString(template, components, isCardTool) {
882931 code += kSocialActionsRowCode.arg(socialAnchors).arg(socialColor);
883932 }
884933
885− var touchdownAnchors;
886− if (hasBackground) {
887− touchdownAnchors = 'fill: backgroundLoader';
888− } else if (touchdownOnArtShape) {
889− touchdownAnchors = 'fill: artShapeHolder';
890− } else {
891− touchdownAnchors = 'fill: root'
934+ if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
935+ var touchdownAnchors;
936+ if (hasBackground) {
937+ touchdownAnchors = 'fill: backgroundLoader';
938+ } else if (touchdownOnArtShape) {
939+ touchdownAnchors = 'fill: artShapeHolder';
940+ } else {
941+ touchdownAnchors = 'fill: root'
942+ }
943+ code += kTouchdownCode.arg(touchdownAnchors);
892944 }
893− code += kTouchdownCode.arg(touchdownAnchors);
894945
895946 var implicitHeight = 'implicitHeight: ';
896947 if (hasSocialActions) {
@@ -925,13 +976,13 @@ function cardString(template, components, isCardTool) {
925976 return code;
926977}
927978
928−function createCardComponent(parent, template, components, isCardTool, identifier) {
979+function createCardComponent(parent, template, components, isCardTool, artShapeStyle, identifier) {
929980 var imports = 'import QtQuick 2.4; \n\
930981 import Ubuntu.Components 1.3; \n\
931982 import Ubuntu.Settings.Components 0.1; \n\
932983 import Dash 0.1;\n\
933984 import Utils 0.1;\n';
934− var card = cardString(template, components, isCardTool);
985+ var card = cardString(template, components, isCardTool, artShapeStyle);
935986 var code = imports + 'Component {\n' + card + '}\n';
936987
937988 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) {
26+ function getCardComponent(template, components, isCardTool, artShapeStyle) {
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;
3333 var component = cache[allString];
3434 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, isCardTool, allString);
35+ component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, 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/ScopeStyle.qml+1−1
@@ -70,7 +70,7 @@ QtObject {
7070 readonly property url navigationBackground: "navigation-background" in d.headerStyle ? d.headerStyle["navigation-background"] : "color:///#f5f5f5"
7171
7272 /// Color of the primary preview button
73− readonly property color previewButtonColor: "preview-button-color" in style ? style["preview-button-color"] : UbuntuColors.orange
73+ readonly property color previewButtonColor: "preview-button-color" in style ? style["preview-button-color"] : theme.palette.normal.positive
7474
7575 //! @cond
7676 property var d: QtObject {
plugins/Dash/listviewwithpageheader.cpp+20−21
@@ -97,6 +97,7 @@
9797#include <qqmlengine.h>
9898#pragma GCC diagnostic push
9999#pragma GCC diagnostic ignored "-pedantic"
100+#include <private/qqmlcontext_p.h>
100101#include <private/qqmldelegatemodel_p.h>
101102#include <private/qqmlglobal_p.h>
102103#include <private/qquickitem_p.h>
@@ -168,7 +169,7 @@ ListViewWithPageHeader::ListViewWithPageHeader()
168169 m_contentYAnimation->setDuration(200);
169170 m_contentYAnimation->setTargetObject(this);
170171
171− connect(this, &ListViewWithPageHeader::contentWidthChanged, this, &ListViewWithPageHeader::onContentWidthChanged);
172+ connect(contentItem(), &QQuickItem::widthChanged, this, &ListViewWithPageHeader::onContentWidthChanged);
172173 connect(this, &ListViewWithPageHeader::contentHeightChanged, this, &ListViewWithPageHeader::onContentHeightChanged);
173174 connect(this, &ListViewWithPageHeader::heightChanged, this, &ListViewWithPageHeader::onHeightChanged);
174175 connect(m_contentYAnimation, &QQuickNumberAnimation::runningChanged, this, &ListViewWithPageHeader::contentYAnimationRunningChanged);
@@ -286,9 +287,11 @@ void ListViewWithPageHeader::setSectionDelegate(QQmlComponent *delegate)
286287 m_sectionDelegate = delegate;
287288
288289 m_topSectionItem = getSectionItem(QString(), false /*watchGeometry*/);
289− m_topSectionItem->setZ(3);
290− QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
291− connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
290+ if (m_topSectionItem) {
291+ m_topSectionItem->setZ(3);
292+ QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
293+ connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
294+ }
292295
293296 // TODO create sections for existing items
294297
@@ -757,8 +760,6 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, b
757760
758761 QQmlContext *creationContext = m_sectionDelegate->creationContext();
759762 QQmlContext *context = new QQmlContext(creationContext ? creationContext : qmlContext(this));
760− context->setContextProperty(QStringLiteral("section"), sectionText);
761− context->setContextProperty(QStringLiteral("delegateIndex"), -1);
762763 QObject *nobj = m_sectionDelegate->beginCreate(context);
763764 if (nobj) {
764765 QQml_setParent_noEvent(context, nobj);
@@ -766,6 +767,8 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, b
766767 if (!sectionItem) {
767768 delete nobj;
768769 } else {
770+ sectionItem->setProperty("text", sectionText);
771+ sectionItem->setProperty("delegateIndex", -1);
769772 sectionItem->setZ(2);
770773 QQml_setParent_noEvent(sectionItem, m_clipItem);
771774 sectionItem->setParentItem(m_clipItem);
@@ -775,7 +778,7 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, b
775778 }
776779 m_sectionDelegate->completeCreate();
777780
778− if (watchGeometry) {
781+ if (watchGeometry && sectionItem) {
779782 QQuickItemPrivate::get(sectionItem)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
780783 }
781784
@@ -801,8 +804,7 @@ void ListViewWithPageHeader::updateSectionItem(int modelIndex)
801804 if (!item->sectionItem()) {
802805 item->setSectionItem(getSectionItem(sectionText));
803806 } else {
804− QQmlContext *context = QQmlEngine::contextForObject(item->sectionItem())->parentContext();
805− context->setContextProperty(QStringLiteral("section"), sectionText);
807+ item->sectionItem()->setProperty("text", sectionText);
806808 }
807809 } else {
808810 if (item->sectionItem()) {
@@ -923,8 +925,7 @@ ListViewWithPageHeader::ListItem *ListViewWithPageHeader::createItem(int modelIn
923925 polish();
924926 }
925927 if (listItem->sectionItem()) {
926− QQmlContext *context = QQmlEngine::contextForObject(listItem->sectionItem())->parentContext();
927− context->setContextProperty(QStringLiteral("delegateIndex"), modelIndex);
928+ listItem->sectionItem()->setProperty("delegateIndex", modelIndex);
928929 }
929930 adjustMinYExtent();
930931 m_contentHeightDirty = true;
@@ -948,9 +949,10 @@ void ListViewWithPageHeader::itemCreated(int modelIndex, QObject *object)
948949 return;
949950
950951 item->setParentItem(m_clipItem);
952+ // FIXME Why do we need the refreshExpressions call?
951953 QQmlContext *context = QQmlEngine::contextForObject(item)->parentContext();
952− context->setContextProperty(QStringLiteral("ListViewWithPageHeader"), this);
953− context->setContextProperty(QStringLiteral("heightToClip"), QVariant::fromValue<int>(0));
954+ QQmlContextPrivate::get(context)->data->refreshExpressions();
955+ item->setProperty("heightToClip", QVariant::fromValue<int>(0));
954956 if (modelIndex == m_asyncRequestedIndex) {
955957 createItem(modelIndex, false);
956958 refill();
@@ -1116,8 +1118,7 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
11161118 for (int i = 0; i < m_visibleItems.count(); ++i) {
11171119 ListItem *item = m_visibleItems[i];
11181120 if (item->sectionItem()) {
1119− QQmlContext *context = QQmlEngine::contextForObject(item->sectionItem())->parentContext();
1120− context->setContextProperty(QStringLiteral("delegateIndex"), m_firstVisibleIndex + i);
1121+ item->sectionItem()->setProperty("delegateIndex", m_firstVisibleIndex + i);
11211122 }
11221123 }
11231124
@@ -1287,8 +1288,7 @@ void ListViewWithPageHeader::layout()
12871288 } else {
12881289 // Update the top sticky section header
12891290 const QString section = m_delegateModel->stringValue(modelIndex, m_sectionProperty);
1290− QQmlContext *context = QQmlEngine::contextForObject(m_topSectionItem)->parentContext();
1291− context->setContextProperty(QStringLiteral("section"), section);
1291+ m_topSectionItem->setProperty("text", section);
12921292
12931293 QQuickItemPrivate::get(m_topSectionItem)->setCulled(false);
12941294 m_topSectionItem->setY(topSectionStickPos);
@@ -1300,19 +1300,18 @@ void ListViewWithPageHeader::layout()
13001300 break;
13011301 delegateIndex--;
13021302 }
1303− context->setContextProperty(QStringLiteral("delegateIndex"), delegateIndex);
1303+ m_topSectionItem->setProperty("delegateIndex", delegateIndex);
13041304 if (item->sectionItem()) {
13051305 QQuickItemPrivate::get(item->sectionItem())->setCulled(true);
13061306 }
13071307 }
13081308 }
13091309 }
1310− QQmlContext *context = QQmlEngine::contextForObject(item->m_item)->parentContext();
13111310 const qreal clipFrom = visibleFrom + (!item->sectionItem() && m_topSectionItem && !QQuickItemPrivate::get(m_topSectionItem)->culled ? m_topSectionItem->height() : 0);
13121311 if (!cull && pos < clipFrom) {
1313− context->setContextProperty(QStringLiteral("heightToClip"), clipFrom - pos);
1312+ item->m_item->setProperty("heightToClip", clipFrom - pos);
13141313 } else {
1315− context->setContextProperty(QStringLiteral("heightToClip"), QVariant::fromValue<int>(0));
1314+ item->m_item->setProperty("heightToClip", QVariant::fromValue<int>(0));
13161315 }
13171316// qDebug() << "ListViewWithPageHeader::layout" << item->m_item;
13181317 pos += item->height();
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/IntegratedLightDM.qmltypesdeleted−251
@@ -1,251 +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 LightDM 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "Greeter"
12− prototype: "QObject"
13− exports: ["LightDM/Greeter 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Property { name: "active"; type: "bool" }
18− Property { name: "authenticated"; type: "bool"; isReadonly: true }
19− Property { name: "authenticationUser"; type: "string"; isReadonly: true }
20− Property { name: "promptless"; type: "bool"; isReadonly: true }
21− Signal {
22− name: "showMessage"
23− Parameter { name: "text"; type: "string" }
24− Parameter { name: "isError"; type: "bool" }
25− }
26− Signal {
27− name: "showPrompt"
28− Parameter { name: "text"; type: "string" }
29− Parameter { name: "isSecret"; type: "bool" }
30− Parameter { name: "isDefaultPrompt"; type: "bool" }
31− }
32− Signal { name: "authenticationComplete" }
33− Signal {
34− name: "authenticationUserChanged"
35− Parameter { name: "user"; type: "string" }
36− }
37− Signal { name: "isActiveChanged" }
38− Signal { name: "isAuthenticatedChanged" }
39− Signal { name: "showGreeter" }
40− Signal { name: "hideGreeter" }
41− Signal {
42− name: "requestAuthenticationUser"
43− Parameter { name: "user"; type: "string" }
44− }
45− Method {
46− name: "authenticate"
47− Parameter { name: "username"; type: "string" }
48− }
49− Method { name: "authenticate" }
50− Method {
51− name: "respond"
52− Parameter { name: "response"; type: "string" }
53− }
54− Method {
55− name: "startSessionSync"
56− type: "bool"
57− Parameter { name: "session"; type: "string" }
58− }
59− Method { name: "startSessionSync"; type: "bool" }
60− Method {
61− name: "setIsActive"
62− Parameter { name: "isActive"; type: "bool" }
63− }
64− }
65− Component {
66− name: "QAbstractProxyModel"
67− prototype: "QAbstractItemModel"
68− Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
69− }
70− Component {
71− name: "QLightDM::UsersModel"
72− prototype: "QAbstractListModel"
73− exports: ["LightDM/UserRoles 0.1"]
74− isCreatable: false
75− exportMetaObjectRevisions: [0]
76− Enum {
77− name: "UserModelRoles"
78− values: {
79− "NameRole": 256,
80− "RealNameRole": 257,
81− "LoggedInRole": 258,
82− "BackgroundRole": 259,
83− "SessionRole": 260,
84− "HasMessagesRole": 261,
85− "ImagePathRole": 262,
86− "BackgroundPathRole": 263
87− }
88− }
89− }
90− Component {
91− name: "QSortFilterProxyModel"
92− prototype: "QAbstractProxyModel"
93− Property { name: "filterRegExp"; type: "QRegExp" }
94− Property { name: "filterKeyColumn"; type: "int" }
95− Property { name: "dynamicSortFilter"; type: "bool" }
96− Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
97− Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
98− Property { name: "isSortLocaleAware"; type: "bool" }
99− Property { name: "sortRole"; type: "int" }
100− Property { name: "filterRole"; type: "int" }
101− Method {
102− name: "setFilterRegExp"
103− Parameter { name: "pattern"; type: "string" }
104− }
105− Method {
106− name: "setFilterWildcard"
107− Parameter { name: "pattern"; type: "string" }
108− }
109− Method {
110− name: "setFilterFixedString"
111− Parameter { name: "pattern"; type: "string" }
112− }
113− Method { name: "clear" }
114− Method { name: "invalidate" }
115− }
116− Component {
117− name: "UnitySortFilterProxyModelQML"
118− prototype: "QSortFilterProxyModel"
119− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
120− Property { name: "totalCount"; type: "int"; isReadonly: true }
121− Property { name: "count"; type: "int"; isReadonly: true }
122− Property { name: "invertMatch"; type: "bool" }
123− Signal {
124− name: "invertMatchChanged"
125− Parameter { type: "bool" }
126− }
127− Method {
128− name: "get"
129− type: "QVariantMap"
130− Parameter { name: "row"; type: "int" }
131− }
132− Method {
133− name: "data"
134− type: "QVariant"
135− Parameter { name: "row"; type: "int" }
136− Parameter { name: "role"; type: "int" }
137− }
138− Method { name: "count"; type: "int" }
139− Method {
140− name: "findFirst"
141− type: "int"
142− Parameter { name: "role"; type: "int" }
143− Parameter { name: "value"; type: "QVariant" }
144− }
145− Method {
146− name: "mapRowToSource"
147− type: "int"
148− Parameter { name: "row"; type: "int" }
149− }
150− Method {
151− name: "mapFromSource"
152− type: "int"
153− Parameter { name: "row"; type: "int" }
154− }
155− Method {
156− name: "mapToSource"
157− type: "int"
158− Parameter { name: "row"; type: "int" }
159− }
160− }
161− Component {
162− name: "UserMetricsOutput::ColorTheme"
163− prototype: "QObject"
164− Property { name: "start"; type: "QColor"; isReadonly: true }
165− Property { name: "main"; type: "QColor"; isReadonly: true }
166− Property { name: "end"; type: "QColor"; isReadonly: true }
167− Signal {
168− name: "startChanged"
169− Parameter { name: "color"; type: "QColor" }
170− }
171− Signal {
172− name: "mainChanged"
173− Parameter { name: "color"; type: "QColor" }
174− }
175− Signal {
176− name: "endChanged"
177− Parameter { name: "color"; type: "QColor" }
178− }
179− }
180− Component {
181− name: "UserMetricsOutput::UserMetrics"
182− prototype: "QObject"
183− exports: ["LightDM/Infographic 0.1"]
184− isCreatable: false
185− isSingleton: true
186− exportMetaObjectRevisions: [0]
187− Property { name: "label"; type: "string"; isReadonly: true }
188− Property { name: "username"; type: "string" }
189− Property {
190− name: "firstColor"
191− type: "UserMetricsOutput::ColorTheme"
192− isReadonly: true
193− isPointer: true
194− }
195− Property {
196− name: "secondColor"
197− type: "UserMetricsOutput::ColorTheme"
198− isReadonly: true
199− isPointer: true
200− }
201− Property { name: "firstMonth"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
202− Property { name: "secondMonth"; type: "QAbstractItemModel"; isReadonly: true; isPointer: true }
203− Property { name: "currentDay"; type: "int"; isReadonly: true }
204− Signal {
205− name: "labelChanged"
206− Parameter { name: "label"; type: "string" }
207− }
208− Signal {
209− name: "usernameChanged"
210− Parameter { name: "username"; type: "string" }
211− }
212− Signal {
213− name: "firstColorChanged"
214− Parameter { name: "color"; type: "ColorTheme"; isPointer: true }
215− }
216− Signal {
217− name: "firstMonthChanged"
218− Parameter { name: "firstMonth"; type: "QAbstractItemModel"; isPointer: true }
219− }
220− Signal {
221− name: "currentDayChanged"
222− Parameter { name: "currentDay"; type: "int" }
223− }
224− Signal {
225− name: "secondColorChanged"
226− Parameter { name: "color"; type: "ColorTheme"; isPointer: true }
227− }
228− Signal {
229− name: "secondMonthChanged"
230− Parameter { name: "secondMonth"; type: "QAbstractItemModel"; isPointer: true }
231− }
232− Signal { name: "nextDataSource" }
233− Signal { name: "readyForDataChange" }
234− Signal { name: "dataAboutToAppear" }
235− Signal { name: "dataAppeared" }
236− Signal { name: "dataAboutToChange" }
237− Signal { name: "dataChanged" }
238− Signal { name: "dataAboutToDisappear" }
239− Signal { name: "dataDisappeared" }
240− Method { name: "nextDataSourceSlot" }
241− Method { name: "readyForDataChangeSlot" }
242− }
243− Component {
244− name: "UsersModel"
245− prototype: "UnitySortFilterProxyModelQML"
246− exports: ["LightDM/Users 0.1"]
247− isCreatable: false
248− isSingleton: true
249− exportMetaObjectRevisions: [0]
250− }
251−}
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/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/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.h+1−1
@@ -24,7 +24,7 @@
2424#include "UbuntuGesturesQmlGlobal.h"
2525#include <stdint.h>
2626#include <QtCore/QObject>
27−#include "TimeSource.h"
27+#include <TimeSource>
2828
2929/*
3030 Estimates the current velocity of a finger based on recent movement along an axis
plugins/Ubuntu/Gestures/CMakeLists.txt+5−5
@@ -4,27 +4,27 @@ remove_definitions(-DQT_NO_KEYWORDS)
44set(UbuntuGesturesQml_SOURCES
55 plugin.cpp
66 AxisVelocityCalculator.cpp
7− Damper.cpp
87 Direction.cpp
9− DirectionalDragArea.cpp
10− FloatingFlickable.cpp
8+ MouseEventGenerator.cpp
119 PressedOutsideNotifier.cpp
1210 TouchDispatcher.cpp
1311 TouchGate.cpp
1412 TouchGestureArea.cpp
1513)
1614
15+pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
16+
1717add_definitions(-DUBUNTUGESTURESQML_LIBRARY)
1818
1919add_library(UbuntuGesturesQml MODULE ${UbuntuGesturesQml_SOURCES})
20−target_link_libraries(UbuntuGesturesQml UbuntuGestures)
20+target_link_libraries(UbuntuGesturesQml ${UBUNTUGESTURES_LIBRARIES})
2121
2222qt5_use_modules(UbuntuGesturesQml Core Quick)
2323
2424# So that Foo.cpp can #include "Foo.moc"
2525include_directories(${CMAKE_CURRENT_BINARY_DIR})
2626
27−include_directories(${CMAKE_SOURCE_DIR}/libs/UbuntuGestures)
27+include_directories(${UBUNTUGESTURES_INCLUDE_DIRS})
2828
2929# There's no cmake var for v8 include path :-/ so create one
3030LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
plugins/Ubuntu/Gestures/Damper.cppdeleted−24
@@ -1,24 +0,0 @@
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−#include "Damper.h"
18−#include <QDebug>
19−
20−QDebug operator<<(QDebug dbg, const DampedPointF &p)
21−{
22− dbg.nospace() << "(" << p.x() << ", " << p.y() << ")";
23− return dbg.space();
24−}
plugins/Ubuntu/Gestures/Damper.hdeleted−89
@@ -1,89 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef UBUNTU_GESTURES_DAMPER_H
18−#define UBUNTU_GESTURES_DAMPER_H
19−
20−#include <QtCore/QPointF>
21−
22−/*
23− Decreases the oscillations of a value along an axis.
24− */
25−template <class Type> class Damper {
26−public:
27− Damper() : m_value(0), m_maxDelta(0) { }
28−
29− // Maximum delta between the raw value and its dampened counterpart.
30− void setMaxDelta(Type maxDelta) {
31− if (maxDelta < 0) qFatal("Damper::maxDelta must be a positive number.");
32− m_maxDelta = maxDelta;
33− }
34− Type maxDelta() const { return m_maxDelta; }
35−
36− void reset(Type value) {
37− m_value = value;
38− }
39−
40− Type update(Type value) {
41− Type delta = value - m_value;
42− if (delta > 0 && delta > m_maxDelta) {
43− m_value += delta - m_maxDelta;
44− } else if (delta < 0 && delta < -m_maxDelta) {
45− m_value += delta + m_maxDelta;
46− }
47−
48− return m_value;
49− }
50−
51− Type value() const { return m_value; }
52−
53−private:
54− Type m_value;
55− Type m_maxDelta;
56−};
57−
58−/*
59− A point that has its movement dampened.
60− */
61−class DampedPointF {
62−public:
63− void setMaxDelta(qreal maxDelta) {
64− m_x.setMaxDelta(maxDelta);
65− m_y.setMaxDelta(maxDelta);
66− }
67−
68− qreal maxDelta() const { return m_x.maxDelta(); }
69−
70− void reset(const QPointF point) {
71− m_x.reset(point.x());
72− m_y.reset(point.y());
73− }
74−
75− void update(const QPointF point) {
76− m_x.update(point.x());
77− m_y.update(point.y());
78− }
79−
80− qreal x() const { return m_x.value(); }
81− qreal y() const { return m_y.value(); }
82−private:
83− Damper<qreal> m_x;
84− Damper<qreal> m_y;
85−};
86−
87−QDebug operator<<(QDebug dbg, const DampedPointF &p);
88−
89−#endif // UBUNTU_GESTURES_DAMPER_H
plugins/Ubuntu/Gestures/Direction.h+1
@@ -29,6 +29,7 @@ class UBUNTUGESTURESQML_EXPORT Direction : public QObject {
2929 Q_ENUMS(Type)
3030
3131public:
32+ // Make sure it is kept synchronized with SDK UCSwipeArea::Direction
3233 enum Type {
3334 Rightwards, // Along the positive direction of the X axis
3435 Leftwards, // Along the negative direction of the X axis
plugins/Ubuntu/Gestures/DirectionalDragArea.cppdeleted−932
@@ -1,932 +0,0 @@
1−/*
2− * Copyright (C) 2013-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−#define ACTIVETOUCHESINFO_DEBUG 0
18−#define DIRECTIONALDRAGAREA_DEBUG 0
19−
20−#include "DirectionalDragArea.h"
21−
22−#include <QQuickWindow>
23−#include <QtCore/qmath.h>
24−#include <QScreen>
25−#include <QDebug>
26−
27−#pragma GCC diagnostic push
28−#pragma GCC diagnostic ignored "-pedantic"
29−#include <private/qquickwindow_p.h>
30−#pragma GCC diagnostic pop
31−
32−// local
33−#include "TouchOwnershipEvent.h"
34−#include "TouchRegistry.h"
35−#include "UnownedTouchEvent.h"
36−
37−#include "DirectionalDragArea_p.h"
38−
39−using namespace UbuntuGestures;
40−
41−#if DIRECTIONALDRAGAREA_DEBUG
42−#define ddaDebug(params) qDebug().nospace() << "[DDA(" << qPrintable(objectName()) << ")] " << params
43−#include "DebugHelpers.h"
44−
45−namespace {
46−const char *statusToString(DirectionalDragAreaPrivate::Status status)
47−{
48− if (status == DirectionalDragAreaPrivate::WaitingForTouch) {
49− return "WaitingForTouch";
50− } else if (status == DirectionalDragAreaPrivate::Undecided) {
51− return "Undecided";
52− } else {
53− return "Recognized";
54− }
55−}
56−
57−} // namespace {
58−#else // DIRECTIONALDRAGAREA_DEBUG
59−#define ddaDebug(params) ((void)0)
60−#endif // DIRECTIONALDRAGAREA_DEBUG
61−
62−DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
63− : QQuickItem(parent)
64− , d(new DirectionalDragAreaPrivate(this))
65−{
66− d->setRecognitionTimer(new Timer(this));
67− d->recognitionTimer->setInterval(d->maxTime);
68− d->recognitionTimer->setSingleShot(true);
69−
70− connect(this, &QQuickItem::enabledChanged, d, &DirectionalDragAreaPrivate::giveUpIfDisabledOrInvisible);
71− connect(this, &QQuickItem::visibleChanged, d, &DirectionalDragAreaPrivate::giveUpIfDisabledOrInvisible);
72−}
73−
74−Direction::Type DirectionalDragArea::direction() const
75−{
76− return d->direction;
77−}
78−
79−void DirectionalDragArea::setDirection(Direction::Type direction)
80−{
81− if (direction != d->direction) {
82− d->direction = direction;
83− Q_EMIT directionChanged(d->direction);
84− }
85−}
86−
87−void DirectionalDragAreaPrivate::setDistanceThreshold(qreal value)
88−{
89− if (distanceThreshold != value) {
90− distanceThreshold = value;
91− distanceThresholdSquared = distanceThreshold * distanceThreshold;
92− }
93−}
94−
95−void DirectionalDragAreaPrivate::setMaxTime(int value)
96−{
97− if (maxTime != value) {
98− maxTime = value;
99− recognitionTimer->setInterval(maxTime);
100− }
101−}
102−
103−void DirectionalDragAreaPrivate::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
104−{
105− int interval = 0;
106− bool timerWasRunning = false;
107− bool wasSingleShot = false;
108−
109− // can be null when called from the constructor
110− if (recognitionTimer) {
111− interval = recognitionTimer->interval();
112− timerWasRunning = recognitionTimer->isRunning();
113− if (recognitionTimer->parent() == this) {
114− delete recognitionTimer;
115− }
116− }
117−
118− recognitionTimer = timer;
119− timer->setInterval(interval);
120− timer->setSingleShot(wasSingleShot);
121− connect(timer, &UbuntuGestures::AbstractTimer::timeout,
122− this, &DirectionalDragAreaPrivate::rejectGesture);
123− if (timerWasRunning) {
124− recognitionTimer->start();
125− }
126−}
127−
128−void DirectionalDragAreaPrivate::setTimeSource(const SharedTimeSource &timeSource)
129−{
130− this->timeSource = timeSource;
131− activeTouches.m_timeSource = timeSource;
132−}
133−
134−qreal DirectionalDragArea::distance() const
135−{
136− if (Direction::isHorizontal(d->direction)) {
137− return d->publicPos.x() - d->startPos.x();
138− } else {
139− return d->publicPos.y() - d->startPos.y();
140− }
141−}
142−
143−void DirectionalDragAreaPrivate::updateSceneDistance()
144−{
145− QPointF totalMovement = publicScenePos - startScenePos;
146− sceneDistance = projectOntoDirectionVector(totalMovement);
147−}
148−
149−qreal DirectionalDragArea::sceneDistance() const
150−{
151− return d->sceneDistance;
152−}
153−
154−qreal DirectionalDragArea::touchX() const
155−{
156− return d->publicPos.x();
157−}
158−
159−qreal DirectionalDragArea::touchY() const
160−{
161− return d->publicPos.y();
162−}
163−
164−qreal DirectionalDragArea::touchSceneX() const
165−{
166− return d->publicScenePos.x();
167−}
168−
169−qreal DirectionalDragArea::touchSceneY() const
170−{
171− return d->publicScenePos.y();
172−}
173−
174−bool DirectionalDragArea::dragging() const
175−{
176− return d->status == DirectionalDragAreaPrivate::Recognized;
177−}
178−
179−bool DirectionalDragArea::pressed() const
180−{
181− return d->status != DirectionalDragAreaPrivate::WaitingForTouch;
182−}
183−
184−bool DirectionalDragArea::immediateRecognition() const
185−{
186− return d->immediateRecognition;
187−}
188−
189−void DirectionalDragArea::setImmediateRecognition(bool enabled)
190−{
191− if (d->immediateRecognition != enabled) {
192− d->immediateRecognition = enabled;
193− Q_EMIT immediateRecognitionChanged(enabled);
194− }
195−}
196−
197−bool DirectionalDragArea::monitorOnly() const
198−{
199− return d->monitorOnly;
200−}
201−
202−void DirectionalDragArea::setMonitorOnly(bool monitorOnly)
203−{
204− if (d->monitorOnly != monitorOnly) {
205− d->monitorOnly = monitorOnly;
206−
207− if (monitorOnly && d->status == DirectionalDragAreaPrivate::Undecided) {
208− TouchRegistry::instance()->removeCandidateOwnerForTouch(d->touchId, this);
209− // We still wanna know when it ends for keeping the composition time window up-to-date
210− TouchRegistry::instance()->addTouchWatcher(d->touchId, this);
211− }
212−
213− Q_EMIT monitorOnlyChanged(monitorOnly);
214− }
215−}
216−
217−void DirectionalDragArea::removeTimeConstraints()
218−{
219− d->setMaxTime(60 * 60 * 1000);
220− d->compositionTime = 0;
221− ddaDebug("removed time constraints");
222−}
223−
224−bool DirectionalDragArea::event(QEvent *event)
225−{
226− if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
227− d->touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
228− return true;
229− } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
230− d->unownedTouchEvent(static_cast<UnownedTouchEvent *>(event));
231− return true;
232− } else {
233− return QQuickItem::event(event);
234− }
235−}
236−
237−void DirectionalDragAreaPrivate::touchOwnershipEvent(TouchOwnershipEvent *event)
238−{
239− if (event->gained()) {
240− QVector<int> ids;
241− ids.append(event->touchId());
242− ddaDebug("grabbing touch");
243− q->grabTouchPoints(ids);
244−
245− // Work around for Qt bug. If we grab a touch that is being used for mouse pointer
246− // emulation it will cause the emulation logic to go nuts.
247− // Thus we have to also grab the mouse in this case.
248− //
249− // The fix for this bug has landed in Qt 5.4 (https://codereview.qt-project.org/96887)
250− // TODO: Remove this workaround once we start using Qt 5.4
251− if (q->window()) {
252− QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(q->window());
253− if (windowPrivate->touchMouseId == event->touchId() && q->window()->mouseGrabberItem()) {
254− ddaDebug("removing mouse grabber");
255− q->window()->mouseGrabberItem()->ungrabMouse();
256− }
257− }
258− } else {
259− // We still wanna know when it ends for keeping the composition time window up-to-date
260− TouchRegistry::instance()->addTouchWatcher(touchId, q);
261−
262− setStatus(WaitingForTouch);
263− }
264−}
265−
266−void DirectionalDragAreaPrivate::unownedTouchEvent(UnownedTouchEvent *unownedTouchEvent)
267−{
268− QTouchEvent *event = unownedTouchEvent->touchEvent();
269−
270− Q_ASSERT(!event->touchPointStates().testFlag(Qt::TouchPointPressed));
271−
272− ddaDebug("Unowned " << timeSource->msecsSinceReference() << " " << qPrintable(touchEventToString(event)));
273−
274− switch (status) {
275− case WaitingForTouch:
276− // do nothing
277− break;
278− case Undecided:
279− Q_ASSERT(q->isEnabled() && q->isVisible());
280− unownedTouchEvent_undecided(unownedTouchEvent);
281− break;
282− default: // Recognized:
283− if (monitorOnly) {
284− // Treat unowned event as if we owned it, but we are really just watching it
285− touchEvent_recognized(event);
286− }
287− break;
288− }
289−
290− activeTouches.update(event);
291−}
292−
293−void DirectionalDragAreaPrivate::unownedTouchEvent_undecided(UnownedTouchEvent *unownedTouchEvent)
294−{
295− const QTouchEvent::TouchPoint *touchPoint = fetchTargetTouchPoint(unownedTouchEvent->touchEvent());
296− if (!touchPoint) {
297− qCritical() << "DirectionalDragArea[status=Undecided]: touch " << touchId
298− << "missing from UnownedTouchEvent without first reaching state Qt::TouchPointReleased. "
299− "Considering it as released.";
300−
301− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
302− setStatus(WaitingForTouch);
303− return;
304− }
305−
306− const QPointF &touchScenePos = touchPoint->scenePos();
307−
308− if (touchPoint->state() == Qt::TouchPointReleased) {
309− // touch has ended before recognition concluded
310− ddaDebug("Touch has ended before recognition concluded");
311− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
312− setStatus(WaitingForTouch);
313− return;
314− }
315−
316− previousDampedScenePos.setX(dampedScenePos.x());
317− previousDampedScenePos.setY(dampedScenePos.y());
318− dampedScenePos.update(touchScenePos);
319−
320− if (!movingInRightDirection()) {
321− ddaDebug("Rejecting gesture because touch point is moving in the wrong direction.");
322− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
323− // We still wanna know when it ends for keeping the composition time window up-to-date
324− TouchRegistry::instance()->addTouchWatcher(touchId, q);
325− setStatus(WaitingForTouch);
326− return;
327− }
328−
329− if (isWithinTouchCompositionWindow()) {
330− // There's still time for some new touch to appear and ruin our party as it would be combined
331− // with our touchId one and therefore deny the possibility of a single-finger gesture.
332− ddaDebug("Sill within composition window. Let's wait more.");
333− return;
334− }
335−
336− if (movedFarEnoughAlongGestureAxis()) {
337− if (!monitorOnly) {
338− TouchRegistry::instance()->requestTouchOwnership(touchId, q);
339− }
340− setStatus(Recognized);
341− setPublicPos(touchPoint->pos());
342− setPublicScenePos(touchScenePos);
343− } else if (isPastMaxDistance()) {
344− ddaDebug("Rejecting gesture because it went farther than maxDistance without getting recognized.");
345− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
346− // We still wanna know when it ends for keeping the composition time window up-to-date
347− TouchRegistry::instance()->addTouchWatcher(touchId, q);
348− setStatus(WaitingForTouch);
349− } else {
350− ddaDebug("Didn't move far enough yet. Let's wait more.");
351− }
352−}
353−
354−void DirectionalDragArea::touchEvent(QTouchEvent *event)
355−{
356− // TODO: Consider when more than one touch starts in the same event (although it's not possible
357− // with Mir's android-input). Have to track them all. Consider it a plus/bonus.
358−
359− ddaDebug(d->timeSource->msecsSinceReference() << " " << qPrintable(touchEventToString(event)));
360−
361− if (!isEnabled() || !isVisible()) {
362− QQuickItem::touchEvent(event);
363− return;
364− }
365−
366− switch (d->status) {
367− case DirectionalDragAreaPrivate::WaitingForTouch:
368− d->touchEvent_absent(event);
369− break;
370− case DirectionalDragAreaPrivate::Undecided:
371− d->touchEvent_undecided(event);
372− break;
373− default: // Recognized:
374− d->touchEvent_recognized(event);
375− break;
376− }
377−
378− d->activeTouches.update(event);
379−}
380−
381−void DirectionalDragAreaPrivate::touchEvent_absent(QTouchEvent *event)
382−{
383− // TODO: accept/reject is for the whole event, not per touch id. See how that affects us.
384−
385− if (!event->touchPointStates().testFlag(Qt::TouchPointPressed)) {
386− // Nothing to see here. No touch starting in this event.
387− return;
388− }
389−
390− // to be proven wrong, if that's the case
391− bool allGood = true;
392−
393− if (isWithinTouchCompositionWindow()) {
394− // too close to the last touch start. So we consider them as starting roughly at the same time.
395− // Can't be a single-touch gesture.
396− ddaDebug("A new touch point came in but we're still within time composition window. Ignoring it.");
397− allGood = false;
398− }
399−
400− const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
401−
402− const QTouchEvent::TouchPoint *newTouchPoint = nullptr;
403− for (int i = 0; i < touchPoints.count() && allGood; ++i) {
404− const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
405− if (touchPoint.state() == Qt::TouchPointPressed) {
406− if (newTouchPoint) {
407− // more than one touch starting in this QTouchEvent. Can't be a single-touch gesture
408− allGood = false;
409− } else {
410− // that's our candidate
411− newTouchPoint = &touchPoint;
412− }
413− }
414− }
415−
416− if (allGood) {
417− allGood = sanityCheckRecognitionProperties();
418− if (!allGood) {
419− qWarning("DirectionalDragArea: recognition properties are wrongly set. Gesture recognition"
420− " is impossible");
421− }
422− }
423−
424− if (allGood) {
425− Q_ASSERT(newTouchPoint);
426−
427− startPos = newTouchPoint->pos();
428− startScenePos = newTouchPoint->scenePos();
429− touchId = newTouchPoint->id();
430− dampedScenePos.reset(startScenePos);
431− setPublicPos(startPos);
432−
433− setPublicScenePos(startScenePos);
434− updateSceneDirectionVector();
435−
436− if (recognitionIsDisabled()) {
437− // Behave like a dumb TouchArea
438− ddaDebug("Gesture recognition is disabled. Requesting touch ownership immediately.");
439− setStatus(Recognized);
440− if (monitorOnly) {
441− watchPressedTouchPoints(touchPoints);
442− event->ignore();
443− } else {
444− TouchRegistry::instance()->requestTouchOwnership(touchId, q);
445− event->accept();
446− }
447− } else {
448− // just monitor the touch points for now.
449− if (monitorOnly) {
450− watchPressedTouchPoints(touchPoints);
451− } else {
452− TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, q);
453− }
454−
455− setStatus(Undecided);
456− // Let the item below have it. We will monitor it and grab it later if a gesture
457− // gets recognized.
458− event->ignore();
459− }
460− } else {
461− watchPressedTouchPoints(touchPoints);
462− event->ignore();
463− }
464−}
465−
466−void DirectionalDragAreaPrivate::touchEvent_undecided(QTouchEvent *event)
467−{
468− Q_ASSERT(fetchTargetTouchPoint(event) == nullptr);
469−
470− // We're not interested in new touch points. We already have our candidate (touchId).
471− // But we do want to know when those new touches end for keeping the composition time
472− // window up-to-date
473− event->ignore();
474− watchPressedTouchPoints(event->touchPoints());
475−
476− if (event->touchPointStates().testFlag(Qt::TouchPointPressed) && isWithinTouchCompositionWindow()) {
477− // multi-finger drags are not accepted
478− ddaDebug("Multi-finger drags are not accepted");
479−
480− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
481− // We still wanna know when it ends for keeping the composition time window up-to-date
482− TouchRegistry::instance()->addTouchWatcher(touchId, q);
483−
484− setStatus(WaitingForTouch);
485− }
486−}
487−
488−void DirectionalDragAreaPrivate::touchEvent_recognized(QTouchEvent *event)
489−{
490− const QTouchEvent::TouchPoint *touchPoint = fetchTargetTouchPoint(event);
491−
492− if (!touchPoint) {
493− qCritical() << "DirectionalDragArea[status=Recognized]: touch " << touchId
494− << "missing from QTouchEvent without first reaching state Qt::TouchPointReleased. "
495− "Considering it as released.";
496− setStatus(WaitingForTouch);
497− } else {
498− setPublicPos(touchPoint->pos());
499− setPublicScenePos(touchPoint->scenePos());
500−
501− if (touchPoint->state() == Qt::TouchPointReleased) {
502− setStatus(WaitingForTouch);
503− }
504− }
505−}
506−
507−void DirectionalDragAreaPrivate::watchPressedTouchPoints(const QList<QTouchEvent::TouchPoint> &touchPoints)
508−{
509− for (int i = 0; i < touchPoints.count(); ++i) {
510− const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
511− if (touchPoint.state() == Qt::TouchPointPressed) {
512− TouchRegistry::instance()->addTouchWatcher(touchPoint.id(), q);
513− }
514− }
515−}
516−
517−bool DirectionalDragAreaPrivate::recognitionIsDisabled() const
518−{
519− return immediateRecognition || (distanceThreshold <= 0 && compositionTime <= 0);
520−}
521−
522−bool DirectionalDragAreaPrivate::sanityCheckRecognitionProperties()
523−{
524− return recognitionIsDisabled()
525− || (distanceThreshold < maxDistance && compositionTime < maxTime);
526−}
527−
528−const QTouchEvent::TouchPoint *DirectionalDragAreaPrivate::fetchTargetTouchPoint(QTouchEvent *event)
529−{
530− const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
531− const QTouchEvent::TouchPoint *touchPoint = 0;
532− for (int i = 0; i < touchPoints.size(); ++i) {
533− if (touchPoints.at(i).id() == touchId) {
534− touchPoint = &touchPoints.at(i);
535− break;
536− }
537− }
538− return touchPoint;
539−}
540−
541−bool DirectionalDragAreaPrivate::movingInRightDirection() const
542−{
543− if (direction == Direction::Horizontal || direction == Direction::Vertical) {
544− return true;
545− } else {
546− QPointF movementVector(dampedScenePos.x() - previousDampedScenePos.x(),
547− dampedScenePos.y() - previousDampedScenePos.y());
548−
549− qreal scalarProjection = projectOntoDirectionVector(movementVector);
550−
551− return scalarProjection >= 0.;
552− }
553−}
554−
555−bool DirectionalDragAreaPrivate::movedFarEnoughAlongGestureAxis() const
556−{
557− if (distanceThreshold <= 0.) {
558− // distance threshold check is disabled
559− return true;
560− } else {
561− QPointF totalMovement(dampedScenePos.x() - startScenePos.x(),
562− dampedScenePos.y() - startScenePos.y());
563−
564− qreal scalarProjection = projectOntoDirectionVector(totalMovement);
565−
566− ddaDebug(" movedFarEnoughAlongGestureAxis: scalarProjection=" << scalarProjection
567− << ", distanceThreshold=" << distanceThreshold);
568−
569− if (direction == Direction::Horizontal || direction == Direction::Vertical) {
570− return qAbs(scalarProjection) > distanceThreshold;
571− } else {
572− return scalarProjection > distanceThreshold;
573− }
574− }
575−}
576−
577−bool DirectionalDragAreaPrivate::isPastMaxDistance() const
578−{
579− QPointF totalMovement(dampedScenePos.x() - startScenePos.x(),
580− dampedScenePos.y() - startScenePos.y());
581−
582− qreal squaredDistance = totalMovement.x()*totalMovement.x() + totalMovement.y()*totalMovement.y();
583− return squaredDistance > maxDistance*maxDistance;
584−}
585−
586−void DirectionalDragAreaPrivate::giveUpIfDisabledOrInvisible()
587−{
588− if (!q->isEnabled() || !q->isVisible()) {
589− if (status == Undecided) {
590− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
591− // We still wanna know when it ends for keeping the composition time window up-to-date
592− TouchRegistry::instance()->addTouchWatcher(touchId, q);
593− }
594−
595− if (status != WaitingForTouch) {
596− ddaDebug("Resetting status because got disabled or made invisible");
597− setStatus(WaitingForTouch);
598− }
599− }
600−}
601−
602−void DirectionalDragAreaPrivate::rejectGesture()
603−{
604− if (status == Undecided) {
605− ddaDebug("Rejecting gesture because it's taking too long to drag beyond the threshold.");
606−
607− TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, q);
608− // We still wanna know when it ends for keeping the composition time window up-to-date
609− TouchRegistry::instance()->addTouchWatcher(touchId, q);
610−
611− setStatus(WaitingForTouch);
612− }
613−}
614−
615−void DirectionalDragAreaPrivate::setStatus(Status newStatus)
616−{
617− if (newStatus == status)
618− return;
619−
620− Status oldStatus = status;
621−
622− if (oldStatus == Undecided) {
623− recognitionTimer->stop();
624− }
625−
626− status = newStatus;
627− Q_EMIT statusChanged(status);
628−
629− ddaDebug(statusToString(oldStatus) << " -> " << statusToString(newStatus));
630−
631− switch (newStatus) {
632− case WaitingForTouch:
633− if (oldStatus == Recognized) {
634− Q_EMIT q->draggingChanged(false);
635− }
636− Q_EMIT q->pressedChanged(false);
637− break;
638− case Undecided:
639− recognitionTimer->start();
640− Q_EMIT q->pressedChanged(true);
641− break;
642− case Recognized:
643− if (oldStatus == WaitingForTouch) { // for immediate recognition
644− Q_EMIT q->pressedChanged(true);
645− }
646− Q_EMIT q->draggingChanged(true);
647− break;
648− default:
649− // no-op
650− break;
651− }
652−}
653−
654−void DirectionalDragAreaPrivate::setPublicPos(const QPointF point)
655−{
656− bool xChanged = publicPos.x() != point.x();
657− bool yChanged = publicPos.y() != point.y();
658−
659− // Public position should not get updated while the gesture is still being recognized
660− // (ie, Undecided status).
661− Q_ASSERT(status == WaitingForTouch || status == Recognized);
662−
663− if (status == Recognized && !recognitionIsDisabled()) {
664− // When the gesture finally gets recognized, the finger will likely be
665− // reasonably far from the edge. If we made the contentX immediately
666− // follow the finger position it would be visually unpleasant as it
667− // would appear right next to the user's finger out of nowhere (ie,
668− // it would jump). Instead, we make contentX go towards the user's
669− // finger in several steps. ie., in an animated way.
670− QPointF delta = point - publicPos;
671− // the trick is not to go all the way (1.0) as it would cause a sudden jump
672− publicPos.rx() += 0.4 * delta.x();
673− publicPos.ry() += 0.4 * delta.y();
674− } else {
675− // no smoothing when initializing or if gesture recognition was immediate as there will
676− // be no jump.
677− publicPos = point;
678− }
679−
680− if (xChanged) {
681− Q_EMIT q->touchXChanged(publicPos.x());
682− if (Direction::isHorizontal(direction))
683− Q_EMIT q->distanceChanged(q->distance());
684− }
685−
686− if (yChanged) {
687− Q_EMIT q->touchYChanged(publicPos.y());
688− if (Direction::isVertical(direction))
689− Q_EMIT q->distanceChanged(q->distance());
690− }
691−}
692−
693−void DirectionalDragAreaPrivate::setPublicScenePos(const QPointF point)
694−{
695− bool xChanged = publicScenePos.x() != point.x();
696− bool yChanged = publicScenePos.y() != point.y();
697−
698− if (!xChanged && !yChanged)
699− return;
700−
701− // Public position should not get updated while the gesture is still being recognized
702− // (ie, Undecided status).
703− Q_ASSERT(status == WaitingForTouch || status == Recognized);
704−
705− qreal oldSceneDistance = sceneDistance;
706−
707− if (status == Recognized && !recognitionIsDisabled()) {
708− // When the gesture finally gets recognized, the finger will likely be
709− // reasonably far from the edge. If we made the contentX immediately
710− // follow the finger position it would be visually unpleasant as it
711− // would appear right next to the user's finger out of nowhere (ie,
712− // it would jump). Instead, we make contentX go towards the user's
713− // finger in several steps. ie., in an animated way.
714− QPointF delta = point - publicScenePos;
715− // the trick is not to go all the way (1.0) as it would cause a sudden jump
716− publicScenePos.rx() += 0.4 * delta.x();
717− publicScenePos.ry() += 0.4 * delta.y();
718− } else {
719− // no smoothing when initializing or if gesture recognition was immediate as there will
720− // be no jump.
721− publicScenePos = point;
722− }
723−
724− updateSceneDistance();
725−
726− if (oldSceneDistance != sceneDistance) {
727− Q_EMIT q->sceneDistanceChanged(sceneDistance);
728− }
729−
730− if (xChanged) {
731− Q_EMIT q->touchSceneXChanged(publicScenePos.x());
732− }
733−
734− if (yChanged) {
735− Q_EMIT q->touchSceneYChanged(publicScenePos.y());
736− }
737−}
738−
739−bool DirectionalDragAreaPrivate::isWithinTouchCompositionWindow()
740−{
741− return
742− compositionTime > 0 &&
743− !activeTouches.isEmpty() &&
744− timeSource->msecsSinceReference() <=
745− activeTouches.mostRecentStartTime() + (qint64)compositionTime;
746−}
747−
748−void DirectionalDragArea::itemChange(ItemChange change, const ItemChangeData &value)
749−{
750− if (change == QQuickItem::ItemSceneChange) {
751− if (value.window != nullptr) {
752− value.window->installEventFilter(TouchRegistry::instance());
753−
754− // TODO: Handle window->screen() changes (ie window changing screens)
755−
756− qreal pixelsPerInch = value.window->screen()->physicalDotsPerInch();
757− if (pixelsPerInch < 0) {
758− // It can return garbage when run in a XVFB server (Virtual Framebuffer 'fake' X server)
759− pixelsPerInch = 72;
760− }
761−
762− d->setPixelsPerMm(pixelsPerInch / 25.4);
763− }
764− }
765−}
766−
767−void DirectionalDragAreaPrivate::setPixelsPerMm(qreal pixelsPerMm)
768−{
769− dampedScenePos.setMaxDelta(1. * pixelsPerMm);
770− setDistanceThreshold(4. * pixelsPerMm);
771− maxDistance = 10. * pixelsPerMm;
772−}
773−
774−//************************** ActiveTouchesInfo **************************
775−
776−ActiveTouchesInfo::ActiveTouchesInfo(const SharedTimeSource &timeSource)
777− : m_timeSource(timeSource)
778−{
779−}
780−
781−void ActiveTouchesInfo::update(QTouchEvent *event)
782−{
783− if (!(event->touchPointStates() & (Qt::TouchPointPressed | Qt::TouchPointReleased))) {
784− // nothing to update
785− #if ACTIVETOUCHESINFO_DEBUG
786− qDebug("[DDA::ActiveTouchesInfo] Nothing to Update");
787− #endif
788− return;
789− }
790−
791− const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
792− for (int i = 0; i < touchPoints.count(); ++i) {
793− const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
794− if (touchPoint.state() == Qt::TouchPointPressed) {
795− addTouchPoint(touchPoint.id());
796− } else if (touchPoint.state() == Qt::TouchPointReleased) {
797− removeTouchPoint(touchPoint.id());
798− }
799− }
800−}
801−
802−#if ACTIVETOUCHESINFO_DEBUG
803−QString ActiveTouchesInfo::toString()
804−{
805− QString string = "(";
806−
807− {
808− QTextStream stream(&string);
809− m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &touchInfo) {
810− stream << "(id=" << touchInfo->id << ",startTime=" << touchInfo->startTime << ")";
811− return true;
812− });
813− }
814−
815− string.append(")");
816−
817− return string;
818−}
819−#endif // ACTIVETOUCHESINFO_DEBUG
820−
821−void ActiveTouchesInfo::addTouchPoint(int touchId)
822−{
823− ActiveTouchInfo &activeTouchInfo = m_touchInfoPool.getEmptySlot();
824− activeTouchInfo.id = touchId;
825− activeTouchInfo.startTime = m_timeSource->msecsSinceReference();
826−
827− #if ACTIVETOUCHESINFO_DEBUG
828− qDebug() << "[DDA::ActiveTouchesInfo]" << qPrintable(toString());
829− #endif
830−}
831−
832−qint64 ActiveTouchesInfo::touchStartTime(int touchId)
833−{
834− qint64 result = -1;
835−
836− m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &touchInfo) {
837− if (touchId == touchInfo->id) {
838− result = touchInfo->startTime;
839− return false;
840− } else {
841− return true;
842− }
843− });
844−
845− Q_ASSERT(result != -1);
846− return result;
847−}
848−
849−void ActiveTouchesInfo::removeTouchPoint(int touchId)
850−{
851− m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &touchInfo) {
852− if (touchId == touchInfo->id) {
853− m_touchInfoPool.freeSlot(touchInfo);
854− return false;
855− } else {
856− return true;
857− }
858− });
859−
860− #if ACTIVETOUCHESINFO_DEBUG
861− qDebug() << "[DDA::ActiveTouchesInfo]" << qPrintable(toString());
862− #endif
863−}
864−
865−qint64 ActiveTouchesInfo::mostRecentStartTime()
866−{
867− Q_ASSERT(!m_touchInfoPool.isEmpty());
868−
869− qint64 highestStartTime = -1;
870−
871− m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &activeTouchInfo) {
872− if (activeTouchInfo->startTime > highestStartTime) {
873− highestStartTime = activeTouchInfo->startTime;
874− }
875− return true;
876− });
877−
878− return highestStartTime;
879−}
880−
881−void DirectionalDragAreaPrivate::updateSceneDirectionVector()
882−{
883− QPointF localOrigin(0., 0.);
884− QPointF localDirection;
885− switch (direction) {
886− case Direction::Upwards:
887− localDirection.rx() = 0.;
888− localDirection.ry() = -1.;
889− break;
890− case Direction::Downwards:
891− case Direction::Vertical:
892− localDirection.rx() = 0.;
893− localDirection.ry() = 1;
894− break;
895− case Direction::Leftwards:
896− localDirection.rx() = -1.;
897− localDirection.ry() = 0.;
898− break;
899− default: // Direction::Rightwards || Direction.Horizontal
900− localDirection.rx() = 1.;
901− localDirection.ry() = 0.;
902− break;
903− }
904− QPointF sceneOrigin = q->mapToScene(localOrigin);
905− QPointF sceneDirection = q->mapToScene(localDirection);
906− sceneDirectionVector = sceneDirection - sceneOrigin;
907−}
908−
909−qreal DirectionalDragAreaPrivate::projectOntoDirectionVector(const QPointF sceneVector) const
910−{
911− // same as dot product as sceneDirectionVector is a unit vector
912− return sceneVector.x() * sceneDirectionVector.x() +
913− sceneVector.y() * sceneDirectionVector.y();
914−}
915−
916−DirectionalDragAreaPrivate::DirectionalDragAreaPrivate(DirectionalDragArea *q)
917− : q(q)
918− , status(WaitingForTouch)
919− , sceneDistance(0)
920− , touchId(-1)
921− , direction(Direction::Rightwards)
922− , distanceThreshold(0)
923− , distanceThresholdSquared(0.)
924− , maxTime(400)
925− , compositionTime(60)
926− , immediateRecognition(false)
927− , recognitionTimer(nullptr)
928− , timeSource(new RealTimeSource)
929− , activeTouches(timeSource)
930− , monitorOnly(false)
931−{
932−}
plugins/Ubuntu/Gestures/DirectionalDragArea.hdeleted−143
@@ -1,143 +0,0 @@
1−/*
2− * Copyright (C) 2013,2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef DIRECTIONAL_DRAG_AREA_H
18−#define DIRECTIONAL_DRAG_AREA_H
19−
20−#include <QtQuick/QQuickItem>
21−#include "UbuntuGesturesQmlGlobal.h"
22−#include "Damper.h"
23−#include "Direction.h"
24−
25−// lib UbuntuGestures
26−#include <Pool.h>
27−#include <Timer.h>
28−
29−class TouchOwnershipEvent;
30−class UnownedTouchEvent;
31−class DirectionalDragAreaPrivate;
32−
33−/*
34− An area that detects axis-aligned single-finger drag gestures
35−
36− If a drag deviates too much from the components' direction recognition will
37− fail. It will also fail if the drag or flick is too short. E.g. a noisy or
38− fidgety click
39−
40− See doc/DirectionalDragArea.svg
41− */
42−class UBUNTUGESTURESQML_EXPORT DirectionalDragArea : public QQuickItem {
43− Q_OBJECT
44−
45− // The direction in which the gesture should move in order to be recognized.
46− Q_PROPERTY(Direction::Type direction READ direction WRITE setDirection NOTIFY directionChanged)
47−
48− // The distance travelled by the finger along the axis specified by
49− // DirectionalDragArea's direction.
50− Q_PROPERTY(qreal distance READ distance NOTIFY distanceChanged)
51−
52− // The distance travelled by the finger along the axis specified by
53− // DirectionalDragArea's direction in scene coordinates
54− Q_PROPERTY(qreal sceneDistance READ sceneDistance NOTIFY sceneDistanceChanged)
55−
56− // Position of the touch point performing the drag relative to this item.
57− Q_PROPERTY(qreal touchX READ touchX NOTIFY touchXChanged)
58− Q_PROPERTY(qreal touchY READ touchY NOTIFY touchYChanged)
59−
60− // Position of the touch point performing the drag, in scene's coordinate system
61− Q_PROPERTY(qreal touchSceneX READ touchSceneX NOTIFY touchSceneXChanged)
62− Q_PROPERTY(qreal touchSceneY READ touchSceneY NOTIFY touchSceneYChanged)
63−
64− // Whether a drag gesture is taking place
65− Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged)
66−
67− // Whether the drag area is pressed.
68− Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged)
69−
70− // Whether a gesture should be Recognized as soon a touch lands on the area.
71− // With this property enabled it will work pretty much like a MultiPointTouchArea,
72− // just with a different API.
73− //
74− // It's false by default. In most cases you will not want that enabled.
75− Q_PROPERTY(bool immediateRecognition
76− READ immediateRecognition
77− WRITE setImmediateRecognition
78− NOTIFY immediateRecognitionChanged)
79−
80− // Whether we are merely monitoring touch events (in which case, we don't
81− // claim ownership of the touch).
82− Q_PROPERTY(bool monitorOnly READ monitorOnly WRITE setMonitorOnly NOTIFY monitorOnlyChanged)
83−
84− Q_ENUMS(Direction)
85−public:
86− DirectionalDragArea(QQuickItem *parent = 0);
87−
88− Direction::Type direction() const;
89− void setDirection(Direction::Type);
90−
91− qreal distance() const;
92− qreal sceneDistance() const;
93−
94− qreal touchX() const;
95− qreal touchY() const;
96−
97− qreal touchSceneX() const;
98− qreal touchSceneY() const;
99−
100− bool dragging() const;
101−
102− bool pressed() const;
103−
104− bool immediateRecognition() const;
105− void setImmediateRecognition(bool enabled);
106−
107− bool monitorOnly() const;
108− void setMonitorOnly(bool monitorOnly);
109−
110− bool event(QEvent *e) override;
111−
112− /*
113− In qmltests, sequences of touch events are sent all at once, unlike in "real life".
114− Also qmltests might run really slowly, e.g. when run from inside virtual machines.
115− Thus to remove a variable that qmltests cannot really control, namely time, this
116− function removes all constraints that are sensible to elapsed time.
117−
118− This effectively makes the DirectionalDragArea easier to fool.
119− */
120− Q_INVOKABLE void removeTimeConstraints();
121−
122−Q_SIGNALS:
123− void directionChanged(Direction::Type direction);
124− void draggingChanged(bool value);
125− void pressedChanged(bool value);
126− void distanceChanged(qreal value);
127− void sceneDistanceChanged(qreal value);
128− void touchXChanged(qreal value);
129− void touchYChanged(qreal value);
130− void touchSceneXChanged(qreal value);
131− void touchSceneYChanged(qreal value);
132− void immediateRecognitionChanged(bool value);
133− void monitorOnlyChanged(bool value);
134−
135−protected:
136− void touchEvent(QTouchEvent *event) override;
137− void itemChange(ItemChange change, const ItemChangeData &value) override;
138−
139−public: // so tests can access it
140− DirectionalDragAreaPrivate *d;
141−};
142−
143−#endif // DIRECTIONAL_DRAG_AREA_H
plugins/Ubuntu/Gestures/DirectionalDragArea_p.hdeleted−169
@@ -1,169 +0,0 @@
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−#ifndef DIRECTIONAL_DRAG_AREA_PRIV_H
18−#define DIRECTIONAL_DRAG_AREA_PRIV_H
19−
20−// Information about an active touch point
21−struct UBUNTUGESTURESQML_EXPORT ActiveTouchInfo {
22− ActiveTouchInfo() : id(-1), startTime(-1) {}
23− bool isValid() const { return id != -1; }
24− void reset() { id = -1; }
25− int id;
26− qint64 startTime;
27−};
28−class UBUNTUGESTURESQML_EXPORT ActiveTouchesInfo {
29−public:
30− ActiveTouchesInfo(const UbuntuGestures::SharedTimeSource &timeSource);
31− void update(QTouchEvent *event);
32− qint64 touchStartTime(int id);
33− bool isEmpty() const { return m_touchInfoPool.isEmpty(); }
34− qint64 mostRecentStartTime();
35− UbuntuGestures::SharedTimeSource m_timeSource;
36−private:
37− void addTouchPoint(int touchId);
38− void removeTouchPoint(int touchId);
39− #if ACTIVETOUCHESINFO_DEBUG
40− QString toString();
41− #endif
42−
43− Pool<ActiveTouchInfo> m_touchInfoPool;
44−};
45−
46−class UBUNTUGESTURESQML_EXPORT DirectionalDragAreaPrivate : public QObject {
47− Q_OBJECT
48−
49− Q_ENUMS(Status)
50−public:
51− DirectionalDragAreaPrivate(DirectionalDragArea *q);
52−
53−public Q_SLOTS:
54− void giveUpIfDisabledOrInvisible();
55− void rejectGesture();
56−
57−public:
58− // Describes the state of the directional drag gesture.
59− enum Status {
60− // Waiting for a new touch point to land on this area. No gesture is being processed
61− // or tracked.
62− WaitingForTouch,
63−
64− // A touch point has landed on this area but it's not know yet whether it is
65− // performing a drag in the correct direction.
66− // If it's decided that the touch point is not performing a directional drag gesture,
67− // it will be rejected/ignored and status will return to WaitingForTouch.
68− Undecided, //Recognizing,
69−
70− // There's a touch point in this area and it performed a drag in the correct
71− // direction.
72− //
73− // Once recognized, the gesture state will move back to WaitingForTouch only once
74− // that touch point ends. The gesture will remain in the Recognized state even if
75− // the touch point starts moving in other directions or halts.
76− Recognized,
77− };
78−
79− void touchEvent_absent(QTouchEvent *event);
80− void touchEvent_undecided(QTouchEvent *event);
81− void touchEvent_recognized(QTouchEvent *event);
82− bool movingInRightDirection() const;
83− bool movedFarEnoughAlongGestureAxis() const;
84− bool isPastMaxDistance() const;
85− const QTouchEvent::TouchPoint *fetchTargetTouchPoint(QTouchEvent *event);
86− void setStatus(Status newStatus);
87− void setPublicPos(const QPointF point);
88− void setPublicScenePos(const QPointF point);
89− bool isWithinTouchCompositionWindow();
90− void updateSceneDirectionVector();
91− // returns the scalar projection between the given vector (in scene coordinates)
92− // and m_sceneDirectionVector
93− qreal projectOntoDirectionVector(const QPointF sceneVector) const;
94− void touchOwnershipEvent(TouchOwnershipEvent *event);
95− void unownedTouchEvent(UnownedTouchEvent *event);
96− void unownedTouchEvent_undecided(UnownedTouchEvent *unownedTouchEvent);
97− void watchPressedTouchPoints(const QList<QTouchEvent::TouchPoint> &touchPoints);
98− bool recognitionIsDisabled() const;
99− bool sanityCheckRecognitionProperties();
100− void updateSceneDistance();
101− void setMaxTime(int value);
102− void setDistanceThreshold(qreal value);
103− void setPixelsPerMm(qreal pixelsPerMm);
104− QString objectName() const { return q->objectName(); }
105−
106− // Replaces the existing Timer with the given one.
107− //
108− // Useful for providing a fake timer when testing.
109− void setRecognitionTimer(UbuntuGestures::AbstractTimer *timer);
110−
111− // Useful for testing, where a fake time source can be supplied
112− void setTimeSource(const UbuntuGestures::SharedTimeSource &timeSource);
113−
114− DirectionalDragArea *q;
115−
116− // The current status of the directional drag gesture area.
117− Status status;
118−
119− QPointF startPos;
120− QPointF startScenePos;
121− qreal sceneDistance;
122− int touchId;
123−
124− // The touch position exposed in the public API.
125− // It only starts to move once the gesture gets recognized.
126− QPointF publicPos;
127− QPointF publicScenePos;
128−
129− // A movement damper is used in some of the gesture recognition calculations
130− // to get rid of noise or small oscillations in the touch position.
131− DampedPointF dampedScenePos;
132− QPointF previousDampedScenePos;
133−
134− // Unit vector in scene coordinates describing the direction of the gesture recognition
135− QPointF sceneDirectionVector;
136−
137− Direction::Type direction;
138−
139− // How far a touch point has to move from its initial position along the gesture axis in order
140− // for it to be recognized as a directional drag.
141− qreal distanceThreshold;
142− qreal distanceThresholdSquared; // it's pow(distanceThreshold, 2)
143−
144− // Maximum time (in milliseconds) the gesture can take to go beyond the distance threshold
145− int maxTime;
146−
147− // Maximum distance the gesture can go without crossing the axis-aligned distance threshold
148− qreal maxDistance;
149−
150− // Maximum time (in milliseconds) after the start of a given touch point where
151− // subsequent touch starts are grouped with the first one into an N-touches gesture
152− // (e.g. a two-fingers tap or drag).
153− int compositionTime;
154−
155− bool immediateRecognition;
156−
157− UbuntuGestures::AbstractTimer *recognitionTimer;
158−
159− UbuntuGestures::SharedTimeSource timeSource;
160−
161− ActiveTouchesInfo activeTouches;
162−
163− bool monitorOnly;
164−
165−Q_SIGNALS:
166− void statusChanged(Status value);
167−};
168−
169−#endif // DIRECTIONAL_DRAG_AREA_PRIV_H
plugins/Ubuntu/Gestures/FloatingFlickable.cppdeleted−150
@@ -1,150 +0,0 @@
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−#include "FloatingFlickable.h"
18−
19−#include <private/qquickflickable_p.h>
20−#include "DirectionalDragArea.h"
21−
22−#include <QDebug>
23−
24−FloatingFlickable::FloatingFlickable(QQuickItem *parent)
25− : QQuickItem(parent)
26− , m_mousePressed(false)
27−{
28− m_dragArea = new DirectionalDragArea(this);
29− m_dragArea->setWidth(width());
30− m_dragArea->setHeight(height());
31− m_dragArea->setDirection(Direction::Horizontal);
32− connect(m_dragArea, &DirectionalDragArea::touchXChanged,
33− this, &FloatingFlickable::onDragAreaTouchPosChanged);
34− connect(m_dragArea, &DirectionalDragArea::touchYChanged,
35− this, &FloatingFlickable::onDragAreaTouchPosChanged);
36− connect(m_dragArea, &DirectionalDragArea::draggingChanged,
37− this, &FloatingFlickable::onDragAreaDraggingChanged);
38− connect(m_dragArea, &DirectionalDragArea::directionChanged, this, &FloatingFlickable::directionChanged);
39−
40− m_flickable = new QQuickFlickable(this);
41− m_flickable->setEnabled(false);
42− m_flickable->setWidth(width());
43− m_flickable->setHeight(height());
44− connect(m_flickable, &QQuickFlickable::contentWidthChanged, this, &FloatingFlickable::contentWidthChanged);
45− connect(m_flickable, &QQuickFlickable::contentHeightChanged, this, &FloatingFlickable::contentHeightChanged);
46− connect(m_flickable, &QQuickFlickable::contentXChanged, this, &FloatingFlickable::contentXChanged);
47− connect(m_flickable, &QQuickFlickable::contentYChanged, this, &FloatingFlickable::contentYChanged);
48−
49− connect(this, &QQuickItem::widthChanged, this, &FloatingFlickable::updateChildrenWidth);
50− connect(this, &QQuickItem::heightChanged, this, &FloatingFlickable::updateChildrenHeight);
51−}
52−
53−qreal FloatingFlickable::contentWidth() const
54−{
55− return m_flickable->contentWidth();
56−}
57−
58−void FloatingFlickable::setContentWidth(qreal contentWidth)
59−{
60− m_flickable->setContentWidth(contentWidth);
61−}
62−
63−qreal FloatingFlickable::contentHeight() const
64−{
65− return m_flickable->contentHeight();
66−}
67−
68−void FloatingFlickable::setContentHeight(qreal contentHeight)
69−{
70− m_flickable->setContentHeight(contentHeight);
71−}
72−
73−qreal FloatingFlickable::contentX() const
74−{
75− return m_flickable->contentX();
76−}
77−
78−void FloatingFlickable::setContentX(qreal contentX)
79−{
80− m_flickable->setContentX(contentX);
81−}
82−
83−qreal FloatingFlickable::contentY() const
84−{
85− return m_flickable->contentY();
86−}
87−
88−void FloatingFlickable::setContentY(qreal contentY)
89−{
90− m_flickable->setContentY(contentY);
91−}
92−
93−Direction::Type FloatingFlickable::direction() const
94−{
95− return m_dragArea->direction();
96−}
97−
98−void FloatingFlickable::setDirection(Direction::Type direction)
99−{
100− m_dragArea->setDirection(direction);
101− if (Direction::isHorizontal(direction)) {
102− m_flickable->setFlickableDirection(QQuickFlickable::HorizontalFlick);
103− } else {
104− m_flickable->setFlickableDirection(QQuickFlickable::VerticalFlick);
105− }
106−}
107−
108−void FloatingFlickable::updateChildrenWidth()
109−{
110− m_dragArea->setWidth(width());
111− m_flickable->setWidth(width());
112−}
113−
114−void FloatingFlickable::updateChildrenHeight()
115−{
116− m_dragArea->setHeight(height());
117− m_flickable->setHeight(height());
118−}
119−
120−void FloatingFlickable::onDragAreaTouchPosChanged(qreal)
121−{
122− if (m_mousePressed) {
123− QMouseEvent mouseEvent(QEvent::MouseMove,
124− QPointF(m_dragArea->touchX(),m_dragArea->touchY()),
125− Qt::NoButton, Qt::LeftButton, Qt::NoModifier);
126−
127− QCoreApplication::sendEvent(m_flickable, &mouseEvent);
128−
129− }
130−}
131−
132−void FloatingFlickable::onDragAreaDraggingChanged(bool dragging)
133−{
134− if (dragging && !m_mousePressed) {
135− QMouseEvent mouseEvent(QEvent::MouseButtonPress,
136− QPointF(m_dragArea->touchX(),m_dragArea->touchY()),
137− Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
138−
139− QCoreApplication::sendEvent(m_flickable, &mouseEvent);
140− m_mousePressed = true;
141−
142− } else if (!dragging && m_mousePressed) {
143− QMouseEvent mouseEvent(QEvent::MouseButtonRelease,
144− QPointF(m_dragArea->touchX(),m_dragArea->touchY()),
145− Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
146−
147− QCoreApplication::sendEvent(m_flickable, &mouseEvent);
148− m_mousePressed = false;
149− }
150−}
plugins/Ubuntu/Gestures/FloatingFlickable.hdeleted−86
@@ -1,86 +0,0 @@
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−#ifndef FLOATING_FLICKABLE_H
18−#define FLOATING_FLICKABLE_H
19−
20−#include <QQuickItem>
21−#include "UbuntuGesturesQmlGlobal.h"
22−#include "Direction.h"
23−
24−class DirectionalDragArea;
25−class QQuickFlickable;
26−
27−/*
28− A Flickable that can be put in front of the item to be flicked and
29− still have the item-to-be-flicked receive input events that are not flicks.
30−
31− Ie, it's a Flickable that, input-wise, is transparent to non-flick gestures.
32−
33− With a regular Flickable you would have to make the item-to-be-flicked a child
34− of Flicakble to achieve the same result. FloatingFlickable has no such requirement
35− or limitation.
36− */
37−class UBUNTUGESTURESQML_EXPORT FloatingFlickable : public QQuickItem {
38− Q_OBJECT
39−
40− Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth NOTIFY contentWidthChanged)
41− Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged)
42− Q_PROPERTY(qreal contentX READ contentX WRITE setContentX NOTIFY contentXChanged)
43− Q_PROPERTY(qreal contentY READ contentY WRITE setContentY NOTIFY contentYChanged)
44−
45− Q_PROPERTY(Direction::Type direction READ direction WRITE setDirection NOTIFY directionChanged)
46−
47−Q_SIGNALS:
48− void contentWidthChanged();
49− void contentHeightChanged();
50− void contentXChanged();
51− void contentYChanged();
52− void directionChanged();
53−
54−public:
55− FloatingFlickable(QQuickItem *parent = nullptr);
56−
57− qreal contentWidth() const;
58− void setContentWidth(qreal contentWidth);
59−
60− qreal contentHeight() const;
61− void setContentHeight(qreal contentHeight);
62−
63− qreal contentX() const;
64− void setContentX(qreal contentX);
65−
66− qreal contentY() const;
67− void setContentY(qreal contentY);
68−
69− Direction::Type direction() const;
70− void setDirection(Direction::Type);
71−
72−private Q_SLOTS:
73− void updateChildrenWidth();
74− void updateChildrenHeight();
75− void onDragAreaTouchPosChanged(qreal);
76− void onDragAreaDraggingChanged(bool value);
77−
78−private:
79− DirectionalDragArea *m_dragArea;
80− QQuickFlickable *m_flickable;
81− bool m_mousePressed;
82−
83− friend class tst_FloatingFlickable;
84−};
85−
86−#endif // FLOATING_FLICKABLE_H
plugins/Ubuntu/Gestures/Gestures.qmltypesdeleted−209
@@ -1,209 +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: "DirectionalDragArea"
59− defaultProperty: "data"
60− prototype: "QQuickItem"
61− exports: ["Ubuntu.Gestures/DirectionalDragArea 0.1"]
62− exportMetaObjectRevisions: [0]
63− Property { name: "direction"; type: "Direction::Type" }
64− Property { name: "distance"; type: "double"; isReadonly: true }
65− Property { name: "sceneDistance"; type: "double"; isReadonly: true }
66− Property { name: "touchX"; type: "double"; isReadonly: true }
67− Property { name: "touchY"; type: "double"; isReadonly: true }
68− Property { name: "touchSceneX"; type: "double"; isReadonly: true }
69− Property { name: "touchSceneY"; type: "double"; isReadonly: true }
70− Property { name: "dragging"; type: "bool"; isReadonly: true }
71− Property { name: "pressed"; type: "bool"; isReadonly: true }
72− Property { name: "immediateRecognition"; type: "bool" }
73− Signal {
74− name: "directionChanged"
75− Parameter { name: "direction"; type: "Direction::Type" }
76− }
77− Signal {
78− name: "draggingChanged"
79− Parameter { name: "value"; type: "bool" }
80− }
81− Signal {
82− name: "pressedChanged"
83− Parameter { name: "value"; type: "bool" }
84− }
85− Signal {
86− name: "distanceChanged"
87− Parameter { name: "value"; type: "double" }
88− }
89− Signal {
90− name: "sceneDistanceChanged"
91− Parameter { name: "value"; type: "double" }
92− }
93− Signal {
94− name: "touchXChanged"
95− Parameter { name: "value"; type: "double" }
96− }
97− Signal {
98− name: "touchYChanged"
99− Parameter { name: "value"; type: "double" }
100− }
101− Signal {
102− name: "touchSceneXChanged"
103− Parameter { name: "value"; type: "double" }
104− }
105− Signal {
106− name: "touchSceneYChanged"
107− Parameter { name: "value"; type: "double" }
108− }
109− Signal {
110− name: "immediateRecognitionChanged"
111− Parameter { name: "value"; type: "bool" }
112− }
113− Method { name: "removeTimeConstraints" }
114− }
115− Component {
116− name: "FloatingFlickable"
117− defaultProperty: "data"
118− prototype: "QQuickItem"
119− exports: ["Ubuntu.Gestures/FloatingFlickable 0.1"]
120− exportMetaObjectRevisions: [0]
121− Property { name: "contentWidth"; type: "double" }
122− Property { name: "contentHeight"; type: "double" }
123− Property { name: "contentX"; type: "double" }
124− Property { name: "contentY"; type: "double" }
125− Property { name: "direction"; type: "Direction::Type" }
126− }
127− Component {
128− name: "GestureTouchPoint"
129− prototype: "QObject"
130− exports: ["Ubuntu.Gestures/GestureTouchPoint 0.1"]
131− isCreatable: false
132− exportMetaObjectRevisions: [0]
133− Property { name: "pointId"; type: "int"; isReadonly: true }
134− Property { name: "pressed"; type: "bool"; isReadonly: true }
135− Property { name: "x"; type: "double"; isReadonly: true }
136− Property { name: "y"; type: "double"; isReadonly: true }
137− Property { name: "dragging"; type: "bool"; isReadonly: true }
138− }
139− Component {
140− name: "PressedOutsideNotifier"
141− defaultProperty: "data"
142− prototype: "QQuickItem"
143− exports: ["Ubuntu.Gestures/PressedOutsideNotifier 0.1"]
144− exportMetaObjectRevisions: [0]
145− Signal { name: "pressedOutside" }
146− }
147− Component {
148− name: "TouchGate"
149− defaultProperty: "data"
150− prototype: "QQuickItem"
151− exports: ["Ubuntu.Gestures/TouchGate 0.1"]
152− exportMetaObjectRevisions: [0]
153− Property { name: "targetItem"; type: "QQuickItem"; isPointer: true }
154− Signal {
155− name: "targetItemChanged"
156− Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
157− }
158− }
159− Component {
160− name: "TouchGestureArea"
161− defaultProperty: "data"
162− prototype: "QQuickItem"
163− exports: ["Ubuntu.Gestures/TouchGestureArea 0.1"]
164− exportMetaObjectRevisions: [0]
165− Enum {
166− name: "Status"
167− values: {
168− "WaitingForTouch": 0,
169− "Undecided": 1,
170− "Recognized": 2,
171− "Rejected": 3
172− }
173− }
174− Property { name: "touchPoints"; type: "GestureTouchPoint"; isList: true; isReadonly: true }
175− Property { name: "dragging"; type: "bool"; isReadonly: true }
176− Property { name: "minimumTouchPoints"; type: "int" }
177− Property { name: "maximumTouchPoints"; type: "int" }
178− Signal {
179− name: "statusChanged"
180− Parameter { name: "status"; type: "Status" }
181− }
182− Signal { name: "touchPointsUpdated" }
183− Signal {
184− name: "draggingChanged"
185− Parameter { name: "dragging"; type: "bool" }
186− }
187− Signal {
188− name: "minimumTouchPointsChanged"
189− Parameter { name: "value"; type: "bool" }
190− }
191− Signal {
192− name: "maximumTouchPointsChanged"
193− Parameter { name: "value"; type: "bool" }
194− }
195− Signal {
196− name: "pressed"
197− Parameter { name: "points"; type: "QList<QObject*>" }
198− }
199− Signal {
200− name: "released"
201− Parameter { name: "points"; type: "QList<QObject*>" }
202− }
203− Signal {
204− name: "updated"
205− Parameter { name: "points"; type: "QList<QObject*>" }
206− }
207− Signal { name: "clicked" }
208− }
209−}
plugins/Ubuntu/Gestures/MouseEventGenerator.cppnew file+64
@@ -0,0 +1,64 @@
1+/*
2+ * Copyright (C) 2015-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 "MouseEventGenerator.h"
18+
19+#include <QCoreApplication>
20+#include <QMouseEvent>
21+#include <QQuickItem>
22+
23+MouseEventGenerator::MouseEventGenerator(QObject *parent)
24+ : QObject(parent)
25+{
26+}
27+
28+void MouseEventGenerator::move(const QPointF position)
29+{
30+ if (!m_mousePressed || !m_targetItem) {
31+ return;
32+ }
33+
34+ QMouseEvent mouseEvent(QEvent::MouseMove,
35+ QPointF(position.x(), position.y()), Qt::NoButton, Qt::LeftButton, Qt::NoModifier);
36+
37+ QCoreApplication::sendEvent(m_targetItem, &mouseEvent);
38+}
39+
40+void MouseEventGenerator::press(const QPointF position)
41+{
42+ if (m_mousePressed || !m_targetItem) {
43+ return;
44+ }
45+
46+ QMouseEvent mouseEvent(QEvent::MouseButtonPress,
47+ QPointF(position.x(), position.y()), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
48+
49+ QCoreApplication::sendEvent(m_targetItem, &mouseEvent);
50+ m_mousePressed = true;
51+}
52+
53+void MouseEventGenerator::release(const QPointF position)
54+{
55+ if (!m_mousePressed || !m_targetItem) {
56+ return;
57+ }
58+
59+ QMouseEvent mouseEvent(QEvent::MouseButtonRelease,
60+ QPointF(position.x(), position.y()), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
61+
62+ QCoreApplication::sendEvent(m_targetItem, &mouseEvent);
63+ m_mousePressed = false;
64+}
plugins/Ubuntu/Gestures/MouseEventGenerator.hnew file+48
@@ -0,0 +1,48 @@
1+/*
2+ * Copyright (C) 2015-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+#ifndef MOUSEEVENTGENERATOR_H
18+#define MOUSEEVENTGENERATOR_H
19+
20+#include <QObject>
21+#include <QPointF>
22+
23+#include "UbuntuGesturesQmlGlobal.h"
24+
25+class QQuickItem;
26+
27+class UBUNTUGESTURESQML_EXPORT MouseEventGenerator : public QObject {
28+ Q_OBJECT
29+ Q_PROPERTY(QQuickItem* targetItem MEMBER m_targetItem NOTIFY targetItemChanged)
30+
31+public:
32+ MouseEventGenerator(QObject *parent = nullptr);
33+
34+ Q_INVOKABLE void move(const QPointF position);
35+ Q_INVOKABLE void press(const QPointF position);
36+ Q_INVOKABLE void release(const QPointF position);
37+
38+Q_SIGNALS:
39+ void targetItemChanged(QQuickItem *);
40+
41+private:
42+ bool m_mousePressed {false};
43+ QQuickItem *m_targetItem {nullptr};
44+
45+ friend class tst_FloatingFlickable;
46+};
47+
48+#endif // MOUSEEVENTGENERATOR_H
plugins/Ubuntu/Gestures/PressedOutsideNotifier.h+1−1
@@ -23,7 +23,7 @@
2323#include <QPointer>
2424#include <QTimer>
2525
26−#include "UbuntuGesturesGlobal.h"
26+#include <ubuntugesturesglobal.h>
2727
2828/*
2929 Notifies when a point, mouse or touch, is pressed outside its area.
plugins/Ubuntu/Gestures/TouchDispatcher.cpp+1−1
@@ -225,7 +225,7 @@ void TouchDispatcher::dispatchAsMouse(
225225 QEvent::Type eventType;
226226 if (touchMouse->state() == Qt::TouchPointPressed) {
227227 eventType = QEvent::MouseButtonPress;
228− } if (touchMouse->state() == Qt::TouchPointReleased) {
228+ } else if (touchMouse->state() == Qt::TouchPointReleased) {
229229 eventType = QEvent::MouseButtonRelease;
230230 m_touchMouseId = -1;
231231 } else {
plugins/Ubuntu/Gestures/TouchGate.cpp+2−2
@@ -20,8 +20,8 @@
2020#include <QDebug>
2121#include <QQuickWindow>
2222
23−#include <TouchOwnershipEvent.h>
24−#include <TouchRegistry.h>
23+#include <TouchOwnershipEvent>
24+#include <TouchRegistry>
2525
2626#if TOUCHGATE_DEBUG
2727#define ugDebug(params) qDebug().nospace() << "[TouchGate(" << (void*)this << ")] " << params
plugins/Ubuntu/Gestures/TouchGestureArea.cpp+16−15
@@ -16,10 +16,11 @@
1616
1717#include "TouchGestureArea.h"
1818
19−// local
20−#include "TouchOwnershipEvent.h"
21−#include "TouchRegistry.h"
22−#include "UnownedTouchEvent.h"
19+#include <UbuntuGestures/TouchOwnershipEvent>
20+#include <UbuntuGestures/TouchRegistry>
21+#include <UbuntuGestures/UnownedTouchEvent>
22+// #include "TouchRegistry.h"
23+// #include "UnownedTouchEvent.h"
2324
2425#include <QGuiApplication>
2526#include <QStyleHints>
@@ -374,7 +375,7 @@ void TouchGestureArea::unownedTouchEvent_waitingForMoreTouches(QTouchEvent *even
374375 }
375376 }
376377
377− if (m_candidateTouches.count() == 0) {
378+ if (m_candidateTouches.isEmpty()) {
378379 setInternalStatus(InternalStatus::WaitingForTouch);
379380 }
380381}
@@ -438,7 +439,7 @@ void TouchGestureArea::unownedTouchEvent_rejected(QTouchEvent *event)
438439 }
439440 }
440441
441− if (m_watchedTouches.count() == 0) {
442+ if (m_watchedTouches.isEmpty()) {
442443 setInternalStatus(InternalStatus::WaitingForTouch);
443444 }
444445}
@@ -526,7 +527,7 @@ void TouchGestureArea::updateTouchPoints(QTouchEvent *touchEvent)
526527 if (updateable) {
527528 if (!dragging() && m_status == InternalStatus::Recognized) {
528529 bool allWantDrag = !m_liveTouchPoints.isEmpty();
529− Q_FOREACH(auto point, m_liveTouchPoints) {
530+ Q_FOREACH(const auto &point, m_liveTouchPoints) {
530531 allWantDrag &= point->dragging();
531532 }
532533 // only dragging if all points are dragging.
@@ -588,13 +589,15 @@ void TouchGestureArea::setInternalStatus(uint newStatus)
588589 resyncCachedTouchPoints();
589590 break;
590591 case InternalStatus::WaitingForMoreTouches:
591− m_recognitionTimer->start(m_recognitionPeriod);
592+ m_recognitionTimer->setInterval(m_recognitionPeriod);
593+ m_recognitionTimer->start();
592594 break;
593595 case InternalStatus::Recognized:
594596 resyncCachedTouchPoints();
595597 break;
596598 case InternalStatus::WaitingForRejection:
597− m_recognitionTimer->start(m_releaseRejectPeriod);
599+ m_recognitionTimer->setInterval(m_releaseRejectPeriod);
600+ m_recognitionTimer->start();
598601 break;
599602 case InternalStatus::Rejected:
600603 resyncCachedTouchPoints();
@@ -643,11 +646,9 @@ bool TouchGestureArea::dragging() const
643646QQmlListProperty<GestureTouchPoint> TouchGestureArea::touchPoints()
644647{
645648 return QQmlListProperty<GestureTouchPoint>(this,
646− 0,
647− nullptr,
648− TouchGestureArea::touchPoint_count,
649− TouchGestureArea::touchPoint_at,
650− 0);
649+ nullptr,
650+ TouchGestureArea::touchPoint_count,
651+ TouchGestureArea::touchPoint_at);
651652}
652653
653654int TouchGestureArea::minimumTouchPoints() const
@@ -718,7 +719,7 @@ void TouchGestureArea::rejectGesture()
718719 }
719720 m_candidateTouches.clear();
720721
721− if (m_watchedTouches.count() == 0) {
722+ if (m_watchedTouches.isEmpty()) {
722723 setInternalStatus(InternalStatus::WaitingForTouch);
723724 } else {
724725 setInternalStatus(InternalStatus::Rejected);
plugins/Ubuntu/Gestures/TouchGestureArea.h+9−10
@@ -21,8 +21,7 @@
2121
2222#include <QQuickItem>
2323
24−// lib UbuntuGestures
25−#include <Timer.h>
24+#include <UbuntuGestures/Timer>
2625
2726class TouchOwnershipEvent;
2827class UnownedTouchEvent;
@@ -106,8 +105,8 @@ private:
106105/*
107106 An area that detects multi-finger gestures.
108107
109− We can use this to detect gestures contstrained by a minimim and/or maximum number of touch points.
110− This components uses the touch registry to apply for ownership of touch points.
108+ We can use this to detect gestures constrained by a minimum and/or maximum number of touch points.
109+ This component uses the touch registry to apply for ownership of touch points.
111110 This way we can use the component in conjuntion with the directional drag area to compete for ownwership
112111 or gestures; unlike the MultiPointTouchArea.
113112 */
@@ -137,7 +136,7 @@ public:
137136 Recognized,
138137 Rejected
139138 };
140− TouchGestureArea(QQuickItem* parent = NULL);
139+ TouchGestureArea(QQuickItem* parent = nullptr);
141140 ~TouchGestureArea();
142141
143142 bool event(QEvent *e) override;
@@ -165,10 +164,10 @@ Q_SIGNALS:
165164
166165 void touchPointsUpdated();
167166 void draggingChanged(bool dragging);
168− void minimumTouchPointsChanged(bool value);
169− void maximumTouchPointsChanged(bool value);
170− void recognitionPeriodChanged(bool value);
171− void releaseRejectPeriodChanged(bool value);
167+ void minimumTouchPointsChanged(int value);
168+ void maximumTouchPointsChanged(int value);
169+ void recognitionPeriodChanged(int value);
170+ void releaseRejectPeriodChanged(int value);
172171
173172 void pressed(const QList<QObject*>& points);
174173 void released(const QList<QObject*>& points);
@@ -176,7 +175,7 @@ Q_SIGNALS:
176175 void clicked();
177176
178177protected:
179− void itemChange(ItemChange change, const ItemChangeData &value);
178+ void itemChange(ItemChange change, const ItemChangeData &value) override;
180179
181180private Q_SLOTS:
182181 void rejectGesture();
plugins/Ubuntu/Gestures/plugin.cpp+3−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013,2015 Canonical, Ltd.
2+ * Copyright (C) 2013,2015,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
@@ -17,8 +17,7 @@
1717#include "plugin.h"
1818#include "AxisVelocityCalculator.h"
1919#include "Direction.h"
20−#include "DirectionalDragArea.h"
21−#include "FloatingFlickable.h"
20+#include "MouseEventGenerator.h"
2221#include "PressedOutsideNotifier.h"
2322#include "TouchGate.h"
2423#include "TouchGestureArea.h"
@@ -34,9 +33,8 @@ static QObject* directionSingleton(QQmlEngine* engine, QJSEngine* scriptEngine)
3433void UbuntuGesturesQmlPlugin::registerTypes(const char *uri)
3534{
3635 qmlRegisterSingletonType<Direction>(uri, 0, 1, "Direction", directionSingleton);
37− qmlRegisterType<DirectionalDragArea>(uri, 0, 1, "DirectionalDragArea");
3836 qmlRegisterType<AxisVelocityCalculator>(uri, 0, 1, "AxisVelocityCalculator");
39− qmlRegisterType<FloatingFlickable>(uri, 0, 1, "FloatingFlickable");
37+ qmlRegisterType<MouseEventGenerator>(uri, 0, 1, "MouseEventGenerator");
4038 qmlRegisterType<PressedOutsideNotifier>(uri, 0, 1, "PressedOutsideNotifier");
4139 qmlRegisterType<TouchGate>(uri, 0, 1, "TouchGate");
4240 qmlRegisterType<TouchGestureArea>(uri, 0, 1, "TouchGestureArea");
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/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/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/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/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/InputInfo/plugin.h+1−1
@@ -24,7 +24,7 @@ class InputInfoPlugin : public QQmlExtensionPlugin
2424 Q_OBJECT
2525 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
2626public:
27− void registerTypes(const char *uri);
27+ void registerTypes(const char *uri) override;
2828};
2929
3030#endif // INPUTINFO_PLUGIN_H
plugins/Unity/InputInfo/qdeclarativeinputdevicemodel_p.h+3−3
@@ -69,8 +69,8 @@ public:
6969 explicit QDeclarativeInputDeviceModel(QObject *parent = 0);
7070 virtual ~QDeclarativeInputDeviceModel();
7171
72− QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
73− int rowCount(const QModelIndex &parent = QModelIndex()) const;
72+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
73+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
7474
7575 void setDeviceFilter(QInputDevice::InputType filter);
7676 QInputDevice::InputType deviceFilter();
@@ -78,7 +78,7 @@ public:
7878 Q_INVOKABLE int indexOf(const QString &devicePath) const;
7979
8080 Q_INVOKABLE QInputDevice *get(int index) const;
81− QHash<int, QByteArray> roleNames() const;
81+ QHash<int, QByteArray> roleNames() const override;
8282
8383Q_SIGNALS:
8484 void deviceAdded(const QString &devicePath);
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 = {RoleCount};
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/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+7
@@ -227,11 +227,14 @@ private Q_SLOTS:
227227 {
228228 if (!active) {
229229 setupSystemdInhibition();
230+ } else {
231+ Q_EMIT prepareForSleep();
230232 }
231233 }
232234
233235Q_SIGNALS:
234236 void screensaverActiveChanged(bool active);
237+ void prepareForSleep();
235238};
236239
237240Q_GLOBAL_STATIC(DBusUnitySessionServicePrivate, d)
@@ -245,6 +248,7 @@ DBusUnitySessionService::DBusUnitySessionService()
245248 // ... and our Unlocked() signal to the logind's session Unlock() signal
246249 // (lightdm handles the unlocking by calling logind's Unlock method which in turn emits this signal we connect to)
247250 QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SIGNAL(Unlocked()));
251+ connect(d, &DBusUnitySessionServicePrivate::prepareForSleep, this, &DBusUnitySessionService::PromptLock);
248252 } else {
249253 qWarning() << "Failed to connect to logind's session Lock/Unlock signals";
250254 }
@@ -390,16 +394,19 @@ void DBusUnitySessionService::Shutdown()
390394
391395void DBusUnitySessionService::Suspend()
392396{
397+ PromptLock();
393398 d->makeLogin1Call(QStringLiteral("Suspend"), {false});
394399}
395400
396401void DBusUnitySessionService::Hibernate()
397402{
403+ PromptLock();
398404 d->makeLogin1Call(QStringLiteral("Hibernate"), {false});
399405}
400406
401407void DBusUnitySessionService::HybridSleep()
402408{
409+ PromptLock();
403410 d->makeLogin1Call(QStringLiteral("HybridSleep"), {false});
404411}
405412
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/WindowInputMonitor.cpp+8−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
55 * it under the terms of the GNU General Public License as published by
@@ -30,7 +30,6 @@ WindowInputMonitor::WindowInputMonitor(UnityUtil::AbstractTimer *timer,
3030 QQuickItem *parent)
3131 : QQuickItem(parent)
3232 , m_windowBeingTouched(false)
33− , m_homeKeyPressed(false)
3433 , m_windowLastTouchedTimer(elapsedTimer)
3534 , m_activationTimer(timer)
3635{
@@ -42,6 +41,7 @@ WindowInputMonitor::WindowInputMonitor(UnityUtil::AbstractTimer *timer,
4241 connect(m_activationTimer, &UnityUtil::AbstractTimer::timeout,
4342 this, &WindowInputMonitor::emitActivatedIfNoTouchesAround);
4443 m_activationTimer->setInterval(msecsWithoutTouches);
44+ m_activationTimer->setSingleShot(true);
4545}
4646
4747WindowInputMonitor::~WindowInputMonitor()
@@ -67,19 +67,19 @@ void WindowInputMonitor::update(QEvent *event)
6767 if (event->type() == QEvent::KeyPress) {
6868 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
6969
70− m_homeKeyPressed = true;
71−
72− if (keyEvent->key() == Qt::Key_Super_L && !keyEvent->isAutoRepeat()
70+ if (m_pressedHomeKey == 0 && m_homeKeys.contains(keyEvent->key()) && !keyEvent->isAutoRepeat()
71+ && !m_activationTimer->isRunning()
7372 && !m_windowBeingTouched
7473 && m_windowLastTouchedTimer->elapsed() >= msecsWithoutTouches) {
74+ m_pressedHomeKey = keyEvent->key();
7575 m_activationTimer->start();
7676 }
7777
7878 } else if (event->type() == QEvent::KeyRelease) {
7979 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
8080
81− if (keyEvent->key() == Qt::Key_Super_L) {
82− m_homeKeyPressed = false;
81+ if (keyEvent->key() == m_pressedHomeKey) {
82+ m_pressedHomeKey = 0;
8383 }
8484
8585 } else if (event->type() == QEvent::TouchBegin) {
@@ -116,7 +116,7 @@ void WindowInputMonitor::setupFilterOnWindow(QQuickWindow *window)
116116
117117void WindowInputMonitor::emitActivatedIfNoTouchesAround()
118118{
119− if (!m_homeKeyPressed && !m_windowBeingTouched &&
119+ if (m_pressedHomeKey == 0 && !m_windowBeingTouched &&
120120 (m_windowLastTouchedTimer->elapsed() > msecsWithoutTouches)) {
121121 Q_EMIT homeKeyActivated();
122122 }
plugins/Utils/WindowInputMonitor.h+8−2
@@ -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
55 * it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
1818#define UNITY_WINDOWINPUTMONITOR_H
1919
2020#include <QQuickItem>
21+#include <QList>
2122#include <QPointer>
2223
2324#include "Timer.h"
@@ -83,9 +84,14 @@ private Q_SLOTS:
8384private:
8485 QPointer<QQuickWindow> m_filteredWindow;
8586 bool m_windowBeingTouched;
86− bool m_homeKeyPressed;
8787 UnityUtil::AbstractElapsedTimer *m_windowLastTouchedTimer;
8888 UnityUtil::AbstractTimer *m_activationTimer;
89+
90+ // Qt::Keys that are mapped to our "home" key.
91+ QList<int> m_homeKeys{Qt::Key_Super_L, Qt::Key_HomePage};
92+ // Which Qt::Key from m_homeKeys is currently pressed.
93+ // 0 if none
94+ int m_pressedHomeKey{0};
8995};
9096
9197#endif // UNITY_WINDOWINPUTMONITOR_H
plugins/Utils/windowstatestorage.h+13−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright 2015 Canonical Ltd.
2+ * Copyright 2015-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 Lesser General Public License as published by
@@ -25,9 +25,19 @@ class WindowStateStorage: public QObject
2525 Q_ENUMS(WindowState)
2626public:
2727 enum WindowState {
28− WindowStateNormal,
29− WindowStateMaximized
28+ WindowStateNormal = 1 << 0,
29+ WindowStateMaximized = 1 << 1,
30+ WindowStateMinimized = 1 << 2,
31+ WindowStateFullscreen = 1 << 3,
32+ WindowStateMaximizedLeft = 1 << 4,
33+ WindowStateMaximizedRight = 1 << 5,
34+ WindowStateMaximizedHorizontally = 1 << 6,
35+ WindowStateMaximizedVertically = 1 << 7
3036 };
37+ Q_DECLARE_FLAGS(WindowStates, WindowState)
38+#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
39+ Q_FLAG(WindowStates)
40+#endif
3141
3242 WindowStateStorage(QObject *parent = 0);
3343 virtual ~WindowStateStorage();
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−}
po/aa.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,69 +54,229 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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/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+
120280#: qml/Components/Lockscreen.qml:231
121281msgid "Return to Call"
122282msgstr "Seecol gacis"
@@ -155,26 +315,26 @@ msgstr ""
155315msgid "Close all"
156316msgstr "Inkih alif"
157317
158−#: qml/Dash/DashPageHeader.qml:337
318+#: qml/Dash/DashPageHeader.qml:333
159319msgctxt "Button: Open the Ubuntu Store"
160320msgid "Store"
161321msgstr ""
162322
163−#: qml/Dash/DashPageHeader.qml:344
323+#: qml/Dash/DashPageHeader.qml:340
164324msgctxt "Button: Start a search in the current dash scope"
165325msgid "Search"
166326msgstr "Goranto"
167327
168−#: qml/Dash/DashPageHeader.qml:354
328+#: qml/Dash/DashPageHeader.qml:350
169329msgctxt "Button: Show the current dash scope settings"
170330msgid "Settings"
171331msgstr "Massosu"
172332
173−#: qml/Dash/DashPageHeader.qml:361
333+#: qml/Dash/DashPageHeader.qml:357
174334msgid "Remove from Favorites"
175335msgstr ""
176336
177−#: qml/Dash/DashPageHeader.qml:361
337+#: qml/Dash/DashPageHeader.qml:357
178338msgid "Add to Favorites"
179339msgstr ""
180340
@@ -186,24 +346,24 @@ msgstr ""
186346msgid "Reset"
187347msgstr ""
188348
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
349+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190350msgid "Show less"
191351msgstr ""
192352
193−#: qml/Dash/GenericScopeView.qml:579
353+#: qml/Dash/GenericScopeView.qml:580
194354msgid "Show all"
195355msgstr ""
196356
197−#: qml/Dash/GenericScopeView.qml:636
357+#: qml/Dash/GenericScopeView.qml:637
198358msgctxt "Label: Hint for dash search line edit"
199359msgid "Search"
200360msgstr "Goranto"
201361
202−#: qml/Dash/PageHeaderExtraPanel.qml:55
362+#: qml/Dash/PageHeaderExtraPanel.qml:56
203363msgid "Recent Searches"
204364msgstr ""
205365
206−#: qml/Dash/PageHeaderExtraPanel.qml:66
366+#: qml/Dash/PageHeaderExtraPanel.qml:67
207367msgid "Clear All"
208368msgstr ""
209369
@@ -216,15 +376,15 @@ msgid "Less..."
216376msgstr ""
217377
218378#: qml/Dash/Previews/PreviewCommentInput.qml:68
219−#: qml/Dash/Previews/PreviewRatingInput.qml:174
379+#: qml/Dash/Previews/PreviewRatingInput.qml:175
220380msgid "Send"
221381msgstr "Rub"
222382
223−#: qml/Dash/Previews/PreviewRatingInput.qml:84
383+#: qml/Dash/Previews/PreviewRatingInput.qml:82
224384msgid "Rate this"
225385msgstr ""
226386
227−#: qml/Dash/Previews/PreviewRatingInput.qml:129
387+#: qml/Dash/Previews/PreviewRatingInput.qml:157
228388msgid "Add a review"
229389msgstr ""
230390
@@ -244,15 +404,15 @@ msgstr ""
244404msgid "Enable location data"
245405msgstr ""
246406
247−#: qml/Dash/ScopesList.qml:67
407+#: qml/Dash/ScopesList.qml:55
248408msgid "Manage"
249409msgstr ""
250410
251−#: qml/Dash/ScopesList.qml:113
411+#: qml/Dash/ScopesList.qml:101
252412msgid "Home"
253413msgstr "Dabqi"
254414
255−#: qml/Dash/ScopesList.qml:114
415+#: qml/Dash/ScopesList.qml:102
256416msgid "Also installed"
257417msgstr ""
258418
@@ -262,16 +422,16 @@ msgid ""
262422"touch pad to interact with the pointer."
263423msgstr ""
264424
265−#: qml/Greeter/CoverPage.qml:118
425+#: qml/Greeter/CoverPage.qml:119
266426msgid "Unlock"
267427msgstr ""
268428
269−#: qml/Greeter/LoginList.qml:239
429+#: qml/Greeter/LoginList.qml:259
270430msgid "Retry"
271431msgstr "Qagis"
272432
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
433+#: qml/Greeter/LoginList.qml:260
434+msgid "Log In"
275435msgstr ""
276436
277437#: qml/Greeter/NarrowView.qml:54
@@ -400,18 +560,18 @@ msgstr "Duudumteh"
400560msgid "Failed, tap to retry"
401561msgstr ""
402562
403−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
563+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
564+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
405565msgctxt "Button: Send a reply message"
406566msgid "Send"
407567msgstr "Rub"
408568
409−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
569+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
410570msgctxt "Label: Hint in message indicator line edit"
411571msgid "Reply"
412572msgstr ""
413573
414−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
574+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
415575msgctxt "Button: Call back on phone"
416576msgid "Call back"
417577msgstr ""
@@ -420,32 +580,12 @@ msgstr ""
420580msgid "Drag using 3 fingers any application from one window to the other"
421581msgstr ""
422582
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
583+#: qml/Tutorial/TutorialLeftLong.qml:49
444584msgid "Long swipe from the left edge to open the Today scope"
445585msgstr ""
446586
447587#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
588+msgid "Short swipe from the left edge to open the launcher"
449589msgstr ""
450590
451591#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +593,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453593msgstr ""
454594
455595#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
596+msgid "Swipe from the right edge to view your open apps"
457597msgstr ""
458598
459599#: 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"
600+msgid "Swipe from the top edge to access notifications and quick settings"
465601msgstr ""
466602
467603#: qml/Wizard/Page.qml:54
@@ -473,8 +609,8 @@ msgstr "Derre"
473609msgid "Language"
474610msgstr ""
475611
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
612+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478614#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479615#: qml/Wizard/Pages/75-report-check.qml:84
480616#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -539,7 +675,7 @@ msgstr ""
539675msgid "Time Zone"
540676msgstr ""
541677
542−#: qml/Wizard/Pages/50-timezone.qml:178
678+#: qml/Wizard/Pages/50-timezone.qml:181
543679msgid "Enter your city"
544680msgstr ""
545681
po/am.po+250−84
@@ -7,31 +7,31 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11−"PO-Revision-Date: 2016-03-24 19:07+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11+"PO-Revision-Date: 2016-06-19 16:08+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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-20 06:12+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,54 +54,54 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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,16 +109,176 @@ 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/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+
122282#: qml/Components/Lockscreen.qml:231
123283msgid "Return to Call"
124284msgstr "ወደ ጥሪ መመለሻ"
@@ -157,26 +317,26 @@ msgstr "አሁን እንደገና መገናኛ!"
157317msgid "Close all"
158318msgstr "ሁሉንም መዝጊያ"
159319
160−#: qml/Dash/DashPageHeader.qml:337
320+#: qml/Dash/DashPageHeader.qml:333
161321msgctxt "Button: Open the Ubuntu Store"
162322msgid "Store"
163323msgstr "ማስቀመጫ"
164324
165−#: qml/Dash/DashPageHeader.qml:344
325+#: qml/Dash/DashPageHeader.qml:340
166326msgctxt "Button: Start a search in the current dash scope"
167327msgid "Search"
168328msgstr "መፈለጊያ"
169329
170−#: qml/Dash/DashPageHeader.qml:354
330+#: qml/Dash/DashPageHeader.qml:350
171331msgctxt "Button: Show the current dash scope settings"
172332msgid "Settings"
173333msgstr "ማሰናጃዎች"
174334
175−#: qml/Dash/DashPageHeader.qml:361
335+#: qml/Dash/DashPageHeader.qml:357
176336msgid "Remove from Favorites"
177337msgstr "ከምወዳቸው ማስወገጃ"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Add to Favorites"
181341msgstr "ወደምወዳቸው መጨመሪያ"
182342
@@ -188,24 +348,24 @@ msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
188348msgid "Reset"
189349msgstr "እንደ ነበረ መመለሻ"
190350
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
351+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192352msgid "Show less"
193−msgstr ""
353+msgstr "ትንሽ ማሳያ"
194354
195−#: qml/Dash/GenericScopeView.qml:579
355+#: qml/Dash/GenericScopeView.qml:580
196356msgid "Show all"
197−msgstr ""
357+msgstr "ሁሉንም ማሳያ"
198358
199−#: qml/Dash/GenericScopeView.qml:636
359+#: qml/Dash/GenericScopeView.qml:637
200360msgctxt "Label: Hint for dash search line edit"
201361msgid "Search"
202362msgstr "መፈለጊያ"
203363
204−#: qml/Dash/PageHeaderExtraPanel.qml:55
364+#: qml/Dash/PageHeaderExtraPanel.qml:56
205365msgid "Recent Searches"
206366msgstr "የ ቅርብ ጊዜ ፍለጋዎች"
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:66
368+#: qml/Dash/PageHeaderExtraPanel.qml:67
209369msgid "Clear All"
210370msgstr "ሁሉንም ማጽጃ"
211371
@@ -218,15 +378,15 @@ msgid "Less..."
218378msgstr "አነስተኛ..."
219379
220380#: qml/Dash/Previews/PreviewCommentInput.qml:68
221−#: qml/Dash/Previews/PreviewRatingInput.qml:174
381+#: qml/Dash/Previews/PreviewRatingInput.qml:175
222382msgid "Send"
223383msgstr "መላኪያ"
224384
225−#: qml/Dash/Previews/PreviewRatingInput.qml:84
385+#: qml/Dash/Previews/PreviewRatingInput.qml:82
226386msgid "Rate this"
227387msgstr "ለዚህ ደረጃ ይስጡ"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:129
389+#: qml/Dash/Previews/PreviewRatingInput.qml:157
230390msgid "Add a review"
231391msgstr "ግምገማ መጨመሪያ"
232392
@@ -246,15 +406,15 @@ msgstr "ይልቀቁ ለማነቃቃት…"
246406msgid "Enable location data"
247407msgstr "የአካባቢ ዳታ ማስቻያ"
248408
249−#: qml/Dash/ScopesList.qml:67
409+#: qml/Dash/ScopesList.qml:55
250410msgid "Manage"
251411msgstr "አስተዳዳሪ"
252412
253−#: qml/Dash/ScopesList.qml:113
413+#: qml/Dash/ScopesList.qml:101
254414msgid "Home"
255415msgstr "ቤት"
256416
257−#: qml/Dash/ScopesList.qml:114
417+#: qml/Dash/ScopesList.qml:102
258418msgid "Also installed"
259419msgstr "እንዲሁም የተገጠሙ"
260420
@@ -264,17 +424,17 @@ msgid ""
264424"touch pad to interact with the pointer."
265425msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
266426
267−#: qml/Greeter/CoverPage.qml:118
427+#: qml/Greeter/CoverPage.qml:119
268428msgid "Unlock"
269429msgstr "መክፈቻ"
270430
271−#: qml/Greeter/LoginList.qml:239
431+#: qml/Greeter/LoginList.qml:259
272432msgid "Retry"
273433msgstr "እንደገና ይሞክሩ"
274434
275−#: qml/Greeter/LoginList.qml:240
276−msgid "Tap to unlock"
277−msgstr "ለመክፈት መታ ያድርጉ"
435+#: qml/Greeter/LoginList.qml:260
436+msgid "Log In"
437+msgstr "መግቢያ"
278438
279439#: qml/Greeter/NarrowView.qml:54
280440msgid "Sorry, incorrect passphrase."
@@ -406,18 +566,18 @@ msgstr "ጨርሷል"
406566msgid "Failed, tap to retry"
407567msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
408568
409−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
410−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
569+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
570+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
411571msgctxt "Button: Send a reply message"
412572msgid "Send"
413573msgstr "መላኪያ"
414574
415−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
575+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
416576msgctxt "Label: Hint in message indicator line edit"
417577msgid "Reply"
418578msgstr "መመለሻ"
419579
420−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
580+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
421581msgctxt "Button: Call back on phone"
422582msgid "Call back"
423583msgstr "መልሶ መደወያ"
@@ -426,49 +586,25 @@ msgstr "መልሶ መደወያ"
426586msgid "Drag using 3 fingers any application from one window to the other"
427587msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
428588
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
589+#: qml/Tutorial/TutorialLeftLong.qml:49
450590msgid "Long swipe from the left edge to open the Today scope"
451591msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
452592
453593#: qml/Tutorial/TutorialLeft.qml:47
454−msgid "Swipe from the left edge to open the launcher"
455−msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
594+msgid "Short swipe from the left edge to open the launcher"
595+msgstr "በ አጭሩ ይጥረጉ ከ ግራ ጠርዝ በኩል ማስጀመሪያውን ለ መክፈት"
456596
457597#: qml/Tutorial/TutorialRight.qml:55
458598msgid "Push your mouse against the right edge to view your open apps"
459−msgstr ""
599+msgstr "የ እርስዎን አይጥ መጠቆሚያ ወደ ቀኝ ጠርዝ በኩል ያስጠጉ የ ተከፈቱ መተግበሪያዎችን ለ መመልከት"
460600
461601#: qml/Tutorial/TutorialRight.qml:56
462−msgid "Short or long swipe from the right edge to view your open apps"
463−msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
602+msgid "Swipe from the right edge to view your open apps"
603+msgstr "ከ ቀኝ በኩል ይጥረጉ የ ተከፈቱ መተግበሪያዎችን ለ መመልከት"
464604
465605#: 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 "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
606+msgid "Swipe from the top edge to access notifications and quick settings"
607+msgstr "ከ ላይ ጠረዝ በኩል ይጥረጉ ማስታወቂያዎች እና በፍጥነት ማሰናጃዎች ጋር ለ መድረስ"
472608
473609#: qml/Wizard/Page.qml:54
474610msgctxt "Button: Go back one page in the Wizard"
@@ -479,8 +615,8 @@ msgstr "ወደ ኋላ"
479615msgid "Language"
480616msgstr "ቋንቋ"
481617
482−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
483−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
618+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
619+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
484620#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
485621#: qml/Wizard/Pages/75-report-check.qml:84
486622#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -545,7 +681,7 @@ msgstr "እርስዎ በኋላ በ ስርአት ማሰናጃ ውስጥ መቀየ
545681msgid "Time Zone"
546682msgstr "የ ሰአት ክልል"
547683
548−#: qml/Wizard/Pages/50-timezone.qml:178
684+#: qml/Wizard/Pages/50-timezone.qml:181
549685msgid "Enter your city"
550686msgstr "የ እርስዎን ከተማ ያስገቡ"
551687
@@ -988,6 +1124,9 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
9881124#~ msgid "View all your running tasks."
9891125#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
9901126
1127+#~ msgid "Tap to unlock"
1128+#~ msgstr "ለመክፈት መታ ያድርጉ"
1129+
9911130#~ msgctxt "Button: Shut down the system"
9921131#~ msgid "Shut down"
9931132#~ msgstr "ማጥፊያ"
@@ -1057,5 +1196,32 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
10571196#~ msgid "Call back"
10581197#~ msgstr "መልሶ መደወያ"
10591198
1199+#~ msgid "Swipe up for recent calls"
1200+#~ msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
1201+
1202+#~ msgid "Swipe up for favorite calculations"
1203+#~ msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
1204+
1205+#~ msgid "Swipe up to manage the app"
1206+#~ msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
1207+
1208+#~ msgid "Swipe up to create a message"
1209+#~ msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
1210+
1211+#~ msgid "Swipe up to add a contact"
1212+#~ msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
1213+
1214+#~ msgid "Swipe from the top right edge to open the notification bar"
1215+#~ msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
1216+
1217+#~ msgid "Swipe from the top edge to open the notification bar"
1218+#~ msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
1219+
1220+#~ msgid "Short or long swipe from the right edge to view your open apps"
1221+#~ msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
1222+
1223+#~ msgid "Swipe from the left edge to open the launcher"
1224+#~ msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
1225+
10601226#~ msgid "Hover your mouse on the right edge to view your open apps"
10611227#~ msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
po/ar.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +16,23 @@ 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-05-25 06:08+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
20+"X-Generator: Launchpad (build 18097)\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
@@ -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
84−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
83+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
84+#: 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,16 +116,176 @@ 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/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+
129289#: qml/Components/Lockscreen.qml:231
130290msgid "Return to Call"
131291msgstr "العودة إلى المكالمة"
@@ -164,26 +324,26 @@ msgstr ""
164324msgid "Close all"
165325msgstr ""
166326
167−#: qml/Dash/DashPageHeader.qml:337
327+#: qml/Dash/DashPageHeader.qml:333
168328msgctxt "Button: Open the Ubuntu Store"
169329msgid "Store"
170330msgstr "المتجر"
171331
172−#: qml/Dash/DashPageHeader.qml:344
332+#: qml/Dash/DashPageHeader.qml:340
173333msgctxt "Button: Start a search in the current dash scope"
174334msgid "Search"
175335msgstr "بحث"
176336
177−#: qml/Dash/DashPageHeader.qml:354
337+#: qml/Dash/DashPageHeader.qml:350
178338msgctxt "Button: Show the current dash scope settings"
179339msgid "Settings"
180340msgstr "الإعدادات"
181341
182−#: qml/Dash/DashPageHeader.qml:361
342+#: qml/Dash/DashPageHeader.qml:357
183343msgid "Remove from Favorites"
184344msgstr "حذف من المفضلات"
185345
186−#: qml/Dash/DashPageHeader.qml:361
346+#: qml/Dash/DashPageHeader.qml:357
187347msgid "Add to Favorites"
188348msgstr "إضافة إلى المفضلات"
189349
@@ -195,24 +355,24 @@ msgstr ""
195355msgid "Reset"
196356msgstr ""
197357
198−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
358+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
199359msgid "Show less"
200360msgstr ""
201361
202−#: qml/Dash/GenericScopeView.qml:579
362+#: qml/Dash/GenericScopeView.qml:580
203363msgid "Show all"
204364msgstr ""
205365
206−#: qml/Dash/GenericScopeView.qml:636
366+#: qml/Dash/GenericScopeView.qml:637
207367msgctxt "Label: Hint for dash search line edit"
208368msgid "Search"
209369msgstr "بحث"
210370
211−#: qml/Dash/PageHeaderExtraPanel.qml:55
371+#: qml/Dash/PageHeaderExtraPanel.qml:56
212372msgid "Recent Searches"
213373msgstr ""
214374
215−#: qml/Dash/PageHeaderExtraPanel.qml:66
375+#: qml/Dash/PageHeaderExtraPanel.qml:67
216376msgid "Clear All"
217377msgstr ""
218378
@@ -225,15 +385,15 @@ msgid "Less..."
225385msgstr "أقل..."
226386
227387#: qml/Dash/Previews/PreviewCommentInput.qml:68
228−#: qml/Dash/Previews/PreviewRatingInput.qml:174
388+#: qml/Dash/Previews/PreviewRatingInput.qml:175
229389msgid "Send"
230390msgstr "أرسل"
231391
232−#: qml/Dash/Previews/PreviewRatingInput.qml:84
392+#: qml/Dash/Previews/PreviewRatingInput.qml:82
233393msgid "Rate this"
234394msgstr "قيّم ذلك"
235395
236−#: qml/Dash/Previews/PreviewRatingInput.qml:129
396+#: qml/Dash/Previews/PreviewRatingInput.qml:157
237397msgid "Add a review"
238398msgstr "أضف تعليق"
239399
@@ -253,15 +413,15 @@ msgstr "حرّر للتحديث..."
253413msgid "Enable location data"
254414msgstr "تفعيل بيانات الموقع"
255415
256−#: qml/Dash/ScopesList.qml:67
416+#: qml/Dash/ScopesList.qml:55
257417msgid "Manage"
258418msgstr "إدارة"
259419
260−#: qml/Dash/ScopesList.qml:113
420+#: qml/Dash/ScopesList.qml:101
261421msgid "Home"
262422msgstr "الرئيسية"
263423
264−#: qml/Dash/ScopesList.qml:114
424+#: qml/Dash/ScopesList.qml:102
265425msgid "Also installed"
266426msgstr "أيضا تم تثبيت"
267427
@@ -271,17 +431,17 @@ msgid ""
271431"touch pad to interact with the pointer."
272432msgstr ""
273433
274−#: qml/Greeter/CoverPage.qml:118
434+#: qml/Greeter/CoverPage.qml:119
275435msgid "Unlock"
276436msgstr "فك القفل"
277437
278−#: qml/Greeter/LoginList.qml:239
438+#: qml/Greeter/LoginList.qml:259
279439msgid "Retry"
280440msgstr "إعادة المحاولة"
281441
282−#: qml/Greeter/LoginList.qml:240
283−msgid "Tap to unlock"
284−msgstr "انقر لفك القفل"
442+#: qml/Greeter/LoginList.qml:260
443+msgid "Log In"
444+msgstr ""
285445
286446#: qml/Greeter/NarrowView.qml:54
287447msgid "Sorry, incorrect passphrase."
@@ -425,18 +585,18 @@ msgstr "انتهى"
425585msgid "Failed, tap to retry"
426586msgstr "فشل، انقل لإعادة المحاولة"
427587
428−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
429−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
588+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
589+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
430590msgctxt "Button: Send a reply message"
431591msgid "Send"
432592msgstr ""
433593
434−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
594+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
435595msgctxt "Label: Hint in message indicator line edit"
436596msgid "Reply"
437597msgstr "رد"
438598
439−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
599+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
440600msgctxt "Button: Call back on phone"
441601msgid "Call back"
442602msgstr ""
@@ -445,32 +605,12 @@ msgstr ""
445605msgid "Drag using 3 fingers any application from one window to the other"
446606msgstr ""
447607
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
608+#: qml/Tutorial/TutorialLeftLong.qml:49
469609msgid "Long swipe from the left edge to open the Today scope"
470610msgstr ""
471611
472612#: qml/Tutorial/TutorialLeft.qml:47
473−msgid "Swipe from the left edge to open the launcher"
613+msgid "Short swipe from the left edge to open the launcher"
474614msgstr ""
475615
476616#: qml/Tutorial/TutorialRight.qml:55
@@ -478,15 +618,11 @@ msgid "Push your mouse against the right edge to view your open apps"
478618msgstr ""
479619
480620#: qml/Tutorial/TutorialRight.qml:56
481−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"
482622msgstr ""
483623
484624#: 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"
625+msgid "Swipe from the top edge to access notifications and quick settings"
490626msgstr ""
491627
492628#: qml/Wizard/Page.qml:54
@@ -498,8 +634,8 @@ msgstr "عودة"
498634msgid "Language"
499635msgstr ""
500636
501−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
502−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
637+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
638+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
503639#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
504640#: qml/Wizard/Pages/75-report-check.qml:84
505641#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -564,7 +700,7 @@ msgstr ""
564700msgid "Time Zone"
565701msgstr ""
566702
567−#: qml/Wizard/Pages/50-timezone.qml:178
703+#: qml/Wizard/Pages/50-timezone.qml:181
568704msgid "Enter your city"
569705msgstr ""
570706
@@ -867,6 +1003,9 @@ msgstr ""
8671003#~ msgid "See all"
8681004#~ msgstr "عرض الكل"
8691005
1006+#~ msgid "Tap to unlock"
1007+#~ msgstr "انقر لفك القفل"
1008+
8701009#~ msgid "Please re-enter"
8711010#~ msgstr "برجاء إعادة إدخالها"
8721011
po/ast.po+246−80
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -55,54 +55,54 @@ msgid_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
78−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
77+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
78+#: 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,16 +110,176 @@ 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/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+
123283#: qml/Components/Lockscreen.qml:231
124284msgid "Return to Call"
125285msgstr "Tornar a la llamada"
@@ -158,26 +318,26 @@ msgstr "Reconeutar agora."
158318msgid "Close all"
159319msgstr "Zarrar too"
160320
161−#: qml/Dash/DashPageHeader.qml:337
321+#: qml/Dash/DashPageHeader.qml:333
162322msgctxt "Button: Open the Ubuntu Store"
163323msgid "Store"
164324msgstr "Tienda"
165325
166−#: qml/Dash/DashPageHeader.qml:344
326+#: qml/Dash/DashPageHeader.qml:340
167327msgctxt "Button: Start a search in the current dash scope"
168328msgid "Search"
169329msgstr "Guetar"
170330
171−#: qml/Dash/DashPageHeader.qml:354
331+#: qml/Dash/DashPageHeader.qml:350
172332msgctxt "Button: Show the current dash scope settings"
173333msgid "Settings"
174334msgstr "Axustes"
175335
176−#: qml/Dash/DashPageHeader.qml:361
336+#: qml/Dash/DashPageHeader.qml:357
177337msgid "Remove from Favorites"
178338msgstr "Desaniciar de favoritos"
179339
180−#: qml/Dash/DashPageHeader.qml:361
340+#: qml/Dash/DashPageHeader.qml:357
181341msgid "Add to Favorites"
182342msgstr "Amestar a favoritos"
183343
@@ -189,24 +349,24 @@ msgstr "Refina los resultaos"
189349msgid "Reset"
190350msgstr "Reafitar"
191351
192−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
352+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
193353msgid "Show less"
194354msgstr "Ver menos"
195355
196−#: qml/Dash/GenericScopeView.qml:579
356+#: qml/Dash/GenericScopeView.qml:580
197357msgid "Show all"
198358msgstr "Ver too"
199359
200−#: qml/Dash/GenericScopeView.qml:636
360+#: qml/Dash/GenericScopeView.qml:637
201361msgctxt "Label: Hint for dash search line edit"
202362msgid "Search"
203363msgstr "Guetar"
204364
205−#: qml/Dash/PageHeaderExtraPanel.qml:55
365+#: qml/Dash/PageHeaderExtraPanel.qml:56
206366msgid "Recent Searches"
207367msgstr "Guetes recién"
208368
209−#: qml/Dash/PageHeaderExtraPanel.qml:66
369+#: qml/Dash/PageHeaderExtraPanel.qml:67
210370msgid "Clear All"
211371msgstr "Llimpiar too"
212372
@@ -219,15 +379,15 @@ msgid "Less..."
219379msgstr "Menos…"
220380
221381#: qml/Dash/Previews/PreviewCommentInput.qml:68
222−#: qml/Dash/Previews/PreviewRatingInput.qml:174
382+#: qml/Dash/Previews/PreviewRatingInput.qml:175
223383msgid "Send"
224384msgstr "Unviar"
225385
226−#: qml/Dash/Previews/PreviewRatingInput.qml:84
386+#: qml/Dash/Previews/PreviewRatingInput.qml:82
227387msgid "Rate this"
228388msgstr "Valorar esto"
229389
230−#: qml/Dash/Previews/PreviewRatingInput.qml:129
390+#: qml/Dash/Previews/PreviewRatingInput.qml:157
231391msgid "Add a review"
232392msgstr "Amestar una reseña"
233393
@@ -247,15 +407,15 @@ msgstr "Sueltar p'anovar..."
247407msgid "Enable location data"
248408msgstr "Habilitar datos d'allugamientu"
249409
250−#: qml/Dash/ScopesList.qml:67
410+#: qml/Dash/ScopesList.qml:55
251411msgid "Manage"
252412msgstr "Xestionar"
253413
254−#: qml/Dash/ScopesList.qml:113
414+#: qml/Dash/ScopesList.qml:101
255415msgid "Home"
256416msgstr "Aniciu"
257417
258−#: qml/Dash/ScopesList.qml:114
418+#: qml/Dash/ScopesList.qml:102
259419msgid "Also installed"
260420msgstr "Tamién instalaos"
261421
@@ -267,17 +427,17 @@ msgstr ""
267427"El preséu agora ta coneutáu con una pantalla esterna. Usa esta pantalla como "
268428"touch pad pa interactuar col punteru."
269429
270−#: qml/Greeter/CoverPage.qml:118
430+#: qml/Greeter/CoverPage.qml:119
271431msgid "Unlock"
272432msgstr "Desbloquiar"
273433
274−#: qml/Greeter/LoginList.qml:239
434+#: qml/Greeter/LoginList.qml:259
275435msgid "Retry"
276436msgstr "Reintentar"
277437
278−#: qml/Greeter/LoginList.qml:240
279−msgid "Tap to unlock"
280−msgstr "Calca pa desbloquiar"
438+#: qml/Greeter/LoginList.qml:260
439+msgid "Log In"
440+msgstr ""
281441
282442#: qml/Greeter/NarrowView.qml:54
283443msgid "Sorry, incorrect passphrase."
@@ -409,18 +569,18 @@ msgstr "Finó"
409569msgid "Failed, tap to retry"
410570msgstr "Falló, toca pa reintentar"
411571
412−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
413−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
572+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
573+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
414574msgctxt "Button: Send a reply message"
415575msgid "Send"
416576msgstr "Unviar"
417577
418−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
578+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
419579msgctxt "Label: Hint in message indicator line edit"
420580msgid "Reply"
421581msgstr "Responder"
422582
423−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
583+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
424584msgctxt "Button: Call back on phone"
425585msgid "Call back"
426586msgstr "Devolver llamada"
@@ -429,51 +589,25 @@ msgstr "Devolver llamada"
429589msgid "Drag using 3 fingers any application from one window to the other"
430590msgstr "Abasnar cualquier aplicación d'una ventana a otra usando 3 deos"
431591
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
592+#: qml/Tutorial/TutorialLeftLong.qml:49
453593msgid "Long swipe from the left edge to open the Today scope"
454594msgstr "Eslizamientu llargu dende'l berbesu izquierdu pa ver el scope Güei"
455595
456596#: 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"
597+msgid "Short swipe from the left edge to open the launcher"
598+msgstr ""
459599
460600#: qml/Tutorial/TutorialRight.qml:55
461601msgid "Push your mouse against the right edge to view your open apps"
462602msgstr "Emburria'l mur escontra'l berbesu drechu pa ver les apps abiertes"
463603
464604#: qml/Tutorial/TutorialRight.qml:56
465−msgid "Short or long swipe from the right edge to view your open apps"
605+msgid "Swipe from the right edge to view your open apps"
466606msgstr ""
467−"Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
468607
469608#: qml/Tutorial/TutorialTop.qml:53
470−msgid "Swipe from the top right edge to open the notification bar"
609+msgid "Swipe from the top edge to access notifications and quick settings"
471610msgstr ""
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"
477611
478612#: qml/Wizard/Page.qml:54
479613msgctxt "Button: Go back one page in the Wizard"
@@ -484,8 +618,8 @@ msgstr "Atrás"
484618msgid "Language"
485619msgstr "Llingua"
486620
487−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
488−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
621+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
622+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
489623#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
490624#: qml/Wizard/Pages/75-report-check.qml:84
491625#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -552,7 +686,7 @@ msgstr "Pues camudalo sero na Configuración del Sistema."
552686msgid "Time Zone"
553687msgstr "Estaya horaria"
554688
555−#: qml/Wizard/Pages/50-timezone.qml:178
689+#: qml/Wizard/Pages/50-timezone.qml:181
556690msgid "Enter your city"
557691msgstr "Escribe la ciudá"
558692
@@ -914,6 +1048,9 @@ msgstr "Contraseña feble enforma"
9141048#~ msgid "Reboot"
9151049#~ msgstr "Reaniciar"
9161050
1051+#~ msgid "Tap to unlock"
1052+#~ msgstr "Calca pa desbloquiar"
1053+
9171054#~ msgid "These are the shortcuts to favorite apps"
9181055#~ msgstr "Estos son los atayos a les aplicaciones favorites"
9191056
@@ -1070,3 +1207,32 @@ msgstr "Contraseña feble enforma"
10701207
10711208#~ msgid "Call back"
10721209#~ msgstr "Devolver llamada"
1210+
1211+#~ msgid "Swipe up for recent calls"
1212+#~ msgstr "Eslizar pa llamaes recién"
1213+
1214+#~ msgid "Swipe up for favorite calculations"
1215+#~ msgstr "Eslizar pa los cálculos favoritos"
1216+
1217+#~ msgid "Swipe up to add a contact"
1218+#~ msgstr "Eslizar p'amestar un contactu"
1219+
1220+#~ msgid "Swipe from the left edge to open the launcher"
1221+#~ msgstr "Eslizar dende'l berbesu izquierdu p'abrir el llanzador"
1222+
1223+#~ msgid "Swipe from the top right edge to open the notification bar"
1224+#~ msgstr ""
1225+#~ "Esliza dende'l berbesu superior drechu p'abrir la barra de notificaciones"
1226+
1227+#~ msgid "Swipe from the top edge to open the notification bar"
1228+#~ msgstr "Esliza dende'l berbesu superior p'abrir la barra de notificaciones"
1229+
1230+#~ msgid "Short or long swipe from the right edge to view your open apps"
1231+#~ msgstr ""
1232+#~ "Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
1233+
1234+#~ msgid "Swipe up to manage the app"
1235+#~ msgstr "Eslizar p'alministrar la app"
1236+
1237+#~ msgid "Swipe up to create a message"
1238+#~ msgstr "Eslizar pa crear un mensaxe"
po/az.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,69 +54,229 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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/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+
120280#: qml/Components/Lockscreen.qml:231
121281msgid "Return to Call"
122282msgstr ""
@@ -155,26 +315,26 @@ msgstr ""
155315msgid "Close all"
156316msgstr ""
157317
158−#: qml/Dash/DashPageHeader.qml:337
318+#: qml/Dash/DashPageHeader.qml:333
159319msgctxt "Button: Open the Ubuntu Store"
160320msgid "Store"
161321msgstr ""
162322
163−#: qml/Dash/DashPageHeader.qml:344
323+#: qml/Dash/DashPageHeader.qml:340
164324msgctxt "Button: Start a search in the current dash scope"
165325msgid "Search"
166326msgstr ""
167327
168−#: qml/Dash/DashPageHeader.qml:354
328+#: qml/Dash/DashPageHeader.qml:350
169329msgctxt "Button: Show the current dash scope settings"
170330msgid "Settings"
171331msgstr ""
172332
173−#: qml/Dash/DashPageHeader.qml:361
333+#: qml/Dash/DashPageHeader.qml:357
174334msgid "Remove from Favorites"
175335msgstr "Seçilmişlәrdәn çıxart"
176336
177−#: qml/Dash/DashPageHeader.qml:361
337+#: qml/Dash/DashPageHeader.qml:357
178338msgid "Add to Favorites"
179339msgstr "Seçilmişlәrә әlavә et"
180340
@@ -186,24 +346,24 @@ msgstr ""
186346msgid "Reset"
187347msgstr ""
188348
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
349+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190350msgid "Show less"
191351msgstr ""
192352
193−#: qml/Dash/GenericScopeView.qml:579
353+#: qml/Dash/GenericScopeView.qml:580
194354msgid "Show all"
195355msgstr ""
196356
197−#: qml/Dash/GenericScopeView.qml:636
357+#: qml/Dash/GenericScopeView.qml:637
198358msgctxt "Label: Hint for dash search line edit"
199359msgid "Search"
200360msgstr ""
201361
202−#: qml/Dash/PageHeaderExtraPanel.qml:55
362+#: qml/Dash/PageHeaderExtraPanel.qml:56
203363msgid "Recent Searches"
204364msgstr ""
205365
206−#: qml/Dash/PageHeaderExtraPanel.qml:66
366+#: qml/Dash/PageHeaderExtraPanel.qml:67
207367msgid "Clear All"
208368msgstr ""
209369
@@ -216,15 +376,15 @@ msgid "Less..."
216376msgstr "Az..."
217377
218378#: qml/Dash/Previews/PreviewCommentInput.qml:68
219−#: qml/Dash/Previews/PreviewRatingInput.qml:174
379+#: qml/Dash/Previews/PreviewRatingInput.qml:175
220380msgid "Send"
221381msgstr "Göndər"
222382
223−#: qml/Dash/Previews/PreviewRatingInput.qml:84
383+#: qml/Dash/Previews/PreviewRatingInput.qml:82
224384msgid "Rate this"
225385msgstr "Qiymәtlәndir"
226386
227−#: qml/Dash/Previews/PreviewRatingInput.qml:129
387+#: qml/Dash/Previews/PreviewRatingInput.qml:157
228388msgid "Add a review"
229389msgstr "Rəy yaz"
230390
@@ -244,15 +404,15 @@ msgstr ""
244404msgid "Enable location data"
245405msgstr ""
246406
247−#: qml/Dash/ScopesList.qml:67
407+#: qml/Dash/ScopesList.qml:55
248408msgid "Manage"
249409msgstr ""
250410
251−#: qml/Dash/ScopesList.qml:113
411+#: qml/Dash/ScopesList.qml:101
252412msgid "Home"
253413msgstr ""
254414
255−#: qml/Dash/ScopesList.qml:114
415+#: qml/Dash/ScopesList.qml:102
256416msgid "Also installed"
257417msgstr ""
258418
@@ -262,16 +422,16 @@ msgid ""
262422"touch pad to interact with the pointer."
263423msgstr ""
264424
265−#: qml/Greeter/CoverPage.qml:118
425+#: qml/Greeter/CoverPage.qml:119
266426msgid "Unlock"
267427msgstr ""
268428
269−#: qml/Greeter/LoginList.qml:239
429+#: qml/Greeter/LoginList.qml:259
270430msgid "Retry"
271431msgstr ""
272432
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
433+#: qml/Greeter/LoginList.qml:260
434+msgid "Log In"
275435msgstr ""
276436
277437#: qml/Greeter/NarrowView.qml:54
@@ -404,18 +564,18 @@ msgstr "Bitdi"
404564msgid "Failed, tap to retry"
405565msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
406566
407−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
408−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
567+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
568+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
409569msgctxt "Button: Send a reply message"
410570msgid "Send"
411571msgstr ""
412572
413−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
573+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
414574msgctxt "Label: Hint in message indicator line edit"
415575msgid "Reply"
416576msgstr ""
417577
418−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
578+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
419579msgctxt "Button: Call back on phone"
420580msgid "Call back"
421581msgstr ""
@@ -424,32 +584,12 @@ msgstr ""
424584msgid "Drag using 3 fingers any application from one window to the other"
425585msgstr ""
426586
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
587+#: qml/Tutorial/TutorialLeftLong.qml:49
448588msgid "Long swipe from the left edge to open the Today scope"
449589msgstr ""
450590
451591#: qml/Tutorial/TutorialLeft.qml:47
452−msgid "Swipe from the left edge to open the launcher"
592+msgid "Short swipe from the left edge to open the launcher"
453593msgstr ""
454594
455595#: qml/Tutorial/TutorialRight.qml:55
@@ -457,15 +597,11 @@ msgid "Push your mouse against the right edge to view your open apps"
457597msgstr ""
458598
459599#: qml/Tutorial/TutorialRight.qml:56
460−msgid "Short or long swipe from the right edge to view your open apps"
600+msgid "Swipe from the right edge to view your open apps"
461601msgstr ""
462602
463603#: 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"
604+msgid "Swipe from the top edge to access notifications and quick settings"
469605msgstr ""
470606
471607#: qml/Wizard/Page.qml:54
@@ -477,8 +613,8 @@ msgstr ""
477613msgid "Language"
478614msgstr ""
479615
480−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
481−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
616+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
617+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
482618#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
483619#: qml/Wizard/Pages/75-report-check.qml:84
484620#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -543,7 +679,7 @@ msgstr ""
543679msgid "Time Zone"
544680msgstr ""
545681
546−#: qml/Wizard/Pages/50-timezone.qml:178
682+#: qml/Wizard/Pages/50-timezone.qml:181
547683msgid "Enter your city"
548684msgstr ""
549685
po/be.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +16,23 @@ 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-05-25 06:08+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
20+"X-Generator: Launchpad (build 18097)\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
@@ -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
82−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82+#: 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,16 +114,176 @@ 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/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+
127287#: qml/Components/Lockscreen.qml:231
128288msgid "Return to Call"
129289msgstr "Вярнуцца да выкліку"
@@ -162,26 +322,26 @@ msgstr "Перападлучыцца зараз!"
162322msgid "Close all"
163323msgstr "Зачыніць усё"
164324
165−#: qml/Dash/DashPageHeader.qml:337
325+#: qml/Dash/DashPageHeader.qml:333
166326msgctxt "Button: Open the Ubuntu Store"
167327msgid "Store"
168328msgstr "Крама"
169329
170−#: qml/Dash/DashPageHeader.qml:344
330+#: qml/Dash/DashPageHeader.qml:340
171331msgctxt "Button: Start a search in the current dash scope"
172332msgid "Search"
173333msgstr "Пошук"
174334
175−#: qml/Dash/DashPageHeader.qml:354
335+#: qml/Dash/DashPageHeader.qml:350
176336msgctxt "Button: Show the current dash scope settings"
177337msgid "Settings"
178338msgstr "Налады"
179339
180−#: qml/Dash/DashPageHeader.qml:361
340+#: qml/Dash/DashPageHeader.qml:357
181341msgid "Remove from Favorites"
182342msgstr "Выдаліць з абранага"
183343
184−#: qml/Dash/DashPageHeader.qml:361
344+#: qml/Dash/DashPageHeader.qml:357
185345msgid "Add to Favorites"
186346msgstr "Дадаць да абранага"
187347
@@ -193,24 +353,24 @@ msgstr ""
193353msgid "Reset"
194354msgstr ""
195355
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
356+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197357msgid "Show less"
198358msgstr ""
199359
200−#: qml/Dash/GenericScopeView.qml:579
360+#: qml/Dash/GenericScopeView.qml:580
201361msgid "Show all"
202362msgstr ""
203363
204−#: qml/Dash/GenericScopeView.qml:636
364+#: qml/Dash/GenericScopeView.qml:637
205365msgctxt "Label: Hint for dash search line edit"
206366msgid "Search"
207367msgstr "Пошук"
208368
209−#: qml/Dash/PageHeaderExtraPanel.qml:55
369+#: qml/Dash/PageHeaderExtraPanel.qml:56
210370msgid "Recent Searches"
211371msgstr ""
212372
213−#: qml/Dash/PageHeaderExtraPanel.qml:66
373+#: qml/Dash/PageHeaderExtraPanel.qml:67
214374msgid "Clear All"
215375msgstr ""
216376
@@ -223,15 +383,15 @@ msgid "Less..."
223383msgstr "Менш..."
224384
225385#: qml/Dash/Previews/PreviewCommentInput.qml:68
226−#: qml/Dash/Previews/PreviewRatingInput.qml:174
386+#: qml/Dash/Previews/PreviewRatingInput.qml:175
227387msgid "Send"
228388msgstr "Адправіць"
229389
230−#: qml/Dash/Previews/PreviewRatingInput.qml:84
390+#: qml/Dash/Previews/PreviewRatingInput.qml:82
231391msgid "Rate this"
232392msgstr "Ацаніць"
233393
234−#: qml/Dash/Previews/PreviewRatingInput.qml:129
394+#: qml/Dash/Previews/PreviewRatingInput.qml:157
235395msgid "Add a review"
236396msgstr "Дадаць рэцэнзію"
237397
@@ -251,15 +411,15 @@ msgstr "Адпусціце для абнаўлення..."
251411msgid "Enable location data"
252412msgstr "Уключыць дадзеныя аб месцазнаходжанні"
253413
254−#: qml/Dash/ScopesList.qml:67
414+#: qml/Dash/ScopesList.qml:55
255415msgid "Manage"
256416msgstr "Кіраванне"
257417
258−#: qml/Dash/ScopesList.qml:113
418+#: qml/Dash/ScopesList.qml:101
259419msgid "Home"
260420msgstr "Хатняя папка"
261421
262−#: qml/Dash/ScopesList.qml:114
422+#: qml/Dash/ScopesList.qml:102
263423msgid "Also installed"
264424msgstr "Таксама ўсталявана"
265425
@@ -269,17 +429,17 @@ msgid ""
269429"touch pad to interact with the pointer."
270430msgstr ""
271431
272−#: qml/Greeter/CoverPage.qml:118
432+#: qml/Greeter/CoverPage.qml:119
273433msgid "Unlock"
274434msgstr "Разблакаваць"
275435
276−#: qml/Greeter/LoginList.qml:239
436+#: qml/Greeter/LoginList.qml:259
277437msgid "Retry"
278438msgstr "Паспрабаваць зноў"
279439
280−#: qml/Greeter/LoginList.qml:240
281−msgid "Tap to unlock"
282−msgstr "Націсніце, каб разблакаваць"
440+#: qml/Greeter/LoginList.qml:260
441+msgid "Log In"
442+msgstr ""
283443
284444#: qml/Greeter/NarrowView.qml:54
285445msgid "Sorry, incorrect passphrase."
@@ -414,18 +574,18 @@ msgstr "Скончана"
414574msgid "Failed, tap to retry"
415575msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
416576
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
418−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
578+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
419579msgctxt "Button: Send a reply message"
420580msgid "Send"
421581msgstr "Даслаць"
422582
423−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
583+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
424584msgctxt "Label: Hint in message indicator line edit"
425585msgid "Reply"
426586msgstr "Адказаць"
427587
428−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
588+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
429589msgctxt "Button: Call back on phone"
430590msgid "Call back"
431591msgstr "Патэлефанаваць"
@@ -434,32 +594,12 @@ msgstr "Патэлефанаваць"
434594msgid "Drag using 3 fingers any application from one window to the other"
435595msgstr ""
436596
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
597+#: qml/Tutorial/TutorialLeftLong.qml:49
458598msgid "Long swipe from the left edge to open the Today scope"
459599msgstr ""
460600
461601#: qml/Tutorial/TutorialLeft.qml:47
462−msgid "Swipe from the left edge to open the launcher"
602+msgid "Short swipe from the left edge to open the launcher"
463603msgstr ""
464604
465605#: qml/Tutorial/TutorialRight.qml:55
@@ -467,15 +607,11 @@ msgid "Push your mouse against the right edge to view your open apps"
467607msgstr ""
468608
469609#: qml/Tutorial/TutorialRight.qml:56
470−msgid "Short or long swipe from the right edge to view your open apps"
610+msgid "Swipe from the right edge to view your open apps"
471611msgstr ""
472612
473613#: 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"
614+msgid "Swipe from the top edge to access notifications and quick settings"
479615msgstr ""
480616
481617#: qml/Wizard/Page.qml:54
@@ -487,8 +623,8 @@ msgstr "Вярнуцца"
487623msgid "Language"
488624msgstr ""
489625
490−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
491−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
626+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
627+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
492628#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
493629#: qml/Wizard/Pages/75-report-check.qml:84
494630#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -553,7 +689,7 @@ msgstr ""
553689msgid "Time Zone"
554690msgstr ""
555691
556−#: qml/Wizard/Pages/50-timezone.qml:178
692+#: qml/Wizard/Pages/50-timezone.qml:181
557693msgid "Enter your city"
558694msgstr ""
559695
@@ -957,6 +1093,9 @@ msgstr ""
9571093#~ msgid "Reboot"
9581094#~ msgstr "Перазагрузіць"
9591095
1096+#~ msgid "Tap to unlock"
1097+#~ msgstr "Націсніце, каб разблакаваць"
1098+
9601099#~ msgid "Swipe up from the bottom edge."
9611100#~ msgstr "Правесці уверх ад ніжняга краю."
9621101
po/bg.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,54 +54,54 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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,16 +109,176 @@ 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/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+
122282#: qml/Components/Lockscreen.qml:231
123283msgid "Return to Call"
124284msgstr ""
@@ -157,26 +317,26 @@ msgstr ""
157317msgid "Close all"
158318msgstr ""
159319
160−#: qml/Dash/DashPageHeader.qml:337
320+#: qml/Dash/DashPageHeader.qml:333
161321msgctxt "Button: Open the Ubuntu Store"
162322msgid "Store"
163323msgstr ""
164324
165−#: qml/Dash/DashPageHeader.qml:344
325+#: qml/Dash/DashPageHeader.qml:340
166326msgctxt "Button: Start a search in the current dash scope"
167327msgid "Search"
168328msgstr ""
169329
170−#: qml/Dash/DashPageHeader.qml:354
330+#: qml/Dash/DashPageHeader.qml:350
171331msgctxt "Button: Show the current dash scope settings"
172332msgid "Settings"
173333msgstr ""
174334
175−#: qml/Dash/DashPageHeader.qml:361
335+#: qml/Dash/DashPageHeader.qml:357
176336msgid "Remove from Favorites"
177337msgstr ""
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Add to Favorites"
181341msgstr ""
182342
@@ -188,24 +348,24 @@ msgstr ""
188348msgid "Reset"
189349msgstr ""
190350
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
351+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192352msgid "Show less"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579
355+#: qml/Dash/GenericScopeView.qml:580
196356msgid "Show all"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:636
359+#: qml/Dash/GenericScopeView.qml:637
200360msgctxt "Label: Hint for dash search line edit"
201361msgid "Search"
202362msgstr ""
203363
204−#: qml/Dash/PageHeaderExtraPanel.qml:55
364+#: qml/Dash/PageHeaderExtraPanel.qml:56
205365msgid "Recent Searches"
206366msgstr ""
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:66
368+#: qml/Dash/PageHeaderExtraPanel.qml:67
209369msgid "Clear All"
210370msgstr ""
211371
@@ -218,15 +378,15 @@ msgid "Less..."
218378msgstr "По-малко..."
219379
220380#: qml/Dash/Previews/PreviewCommentInput.qml:68
221−#: qml/Dash/Previews/PreviewRatingInput.qml:174
381+#: qml/Dash/Previews/PreviewRatingInput.qml:175
222382msgid "Send"
223383msgstr "Изпрати"
224384
225−#: qml/Dash/Previews/PreviewRatingInput.qml:84
385+#: qml/Dash/Previews/PreviewRatingInput.qml:82
226386msgid "Rate this"
227387msgstr "Оценете това"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:129
389+#: qml/Dash/Previews/PreviewRatingInput.qml:157
230390msgid "Add a review"
231391msgstr "Добави отзив"
232392
@@ -246,15 +406,15 @@ msgstr ""
246406msgid "Enable location data"
247407msgstr ""
248408
249−#: qml/Dash/ScopesList.qml:67
409+#: qml/Dash/ScopesList.qml:55
250410msgid "Manage"
251411msgstr ""
252412
253−#: qml/Dash/ScopesList.qml:113
413+#: qml/Dash/ScopesList.qml:101
254414msgid "Home"
255415msgstr ""
256416
257−#: qml/Dash/ScopesList.qml:114
417+#: qml/Dash/ScopesList.qml:102
258418msgid "Also installed"
259419msgstr ""
260420
@@ -264,16 +424,16 @@ msgid ""
264424"touch pad to interact with the pointer."
265425msgstr ""
266426
267−#: qml/Greeter/CoverPage.qml:118
427+#: qml/Greeter/CoverPage.qml:119
268428msgid "Unlock"
269429msgstr ""
270430
271−#: qml/Greeter/LoginList.qml:239
431+#: qml/Greeter/LoginList.qml:259
272432msgid "Retry"
273433msgstr ""
274434
275−#: qml/Greeter/LoginList.qml:240
276−msgid "Tap to unlock"
435+#: qml/Greeter/LoginList.qml:260
436+msgid "Log In"
277437msgstr ""
278438
279439#: qml/Greeter/NarrowView.qml:54
@@ -402,18 +562,18 @@ msgstr ""
402562msgid "Failed, tap to retry"
403563msgstr ""
404564
405−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
406−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
565+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
566+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
407567msgctxt "Button: Send a reply message"
408568msgid "Send"
409569msgstr ""
410570
411−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
571+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
412572msgctxt "Label: Hint in message indicator line edit"
413573msgid "Reply"
414574msgstr ""
415575
416−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
576+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
417577msgctxt "Button: Call back on phone"
418578msgid "Call back"
419579msgstr ""
@@ -422,32 +582,12 @@ msgstr ""
422582msgid "Drag using 3 fingers any application from one window to the other"
423583msgstr ""
424584
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
585+#: qml/Tutorial/TutorialLeftLong.qml:49
446586msgid "Long swipe from the left edge to open the Today scope"
447587msgstr ""
448588
449589#: qml/Tutorial/TutorialLeft.qml:47
450−msgid "Swipe from the left edge to open the launcher"
590+msgid "Short swipe from the left edge to open the launcher"
451591msgstr ""
452592
453593#: qml/Tutorial/TutorialRight.qml:55
@@ -455,15 +595,11 @@ msgid "Push your mouse against the right edge to view your open apps"
455595msgstr ""
456596
457597#: qml/Tutorial/TutorialRight.qml:56
458−msgid "Short or long swipe from the right edge to view your open apps"
598+msgid "Swipe from the right edge to view your open apps"
459599msgstr ""
460600
461601#: 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"
602+msgid "Swipe from the top edge to access notifications and quick settings"
467603msgstr ""
468604
469605#: qml/Wizard/Page.qml:54
@@ -475,8 +611,8 @@ msgstr ""
475611msgid "Language"
476612msgstr ""
477613
478−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
479−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
614+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
615+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
480616#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
481617#: qml/Wizard/Pages/75-report-check.qml:84
482618#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -541,7 +677,7 @@ msgstr ""
541677msgid "Time Zone"
542678msgstr ""
543679
544−#: qml/Wizard/Pages/50-timezone.qml:178
680+#: qml/Wizard/Pages/50-timezone.qml:181
545681msgid "Enter your city"
546682msgstr ""
547683
po/bn.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,54 +54,54 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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,16 +109,176 @@ 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/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+
122282#: qml/Components/Lockscreen.qml:231
123283msgid "Return to Call"
124284msgstr "কল এ ফিরে যান"
@@ -157,26 +317,26 @@ msgstr ""
157317msgid "Close all"
158318msgstr ""
159319
160−#: qml/Dash/DashPageHeader.qml:337
320+#: qml/Dash/DashPageHeader.qml:333
161321msgctxt "Button: Open the Ubuntu Store"
162322msgid "Store"
163323msgstr "স্টোর"
164324
165−#: qml/Dash/DashPageHeader.qml:344
325+#: qml/Dash/DashPageHeader.qml:340
166326msgctxt "Button: Start a search in the current dash scope"
167327msgid "Search"
168328msgstr "খুঁজুন"
169329
170−#: qml/Dash/DashPageHeader.qml:354
330+#: qml/Dash/DashPageHeader.qml:350
171331msgctxt "Button: Show the current dash scope settings"
172332msgid "Settings"
173333msgstr "সেটিংস"
174334
175−#: qml/Dash/DashPageHeader.qml:361
335+#: qml/Dash/DashPageHeader.qml:357
176336msgid "Remove from Favorites"
177337msgstr "পছন্দ থেকে মুছে ফেলুন"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Add to Favorites"
181341msgstr "পছন্দতে যোগ করুন"
182342
@@ -188,24 +348,24 @@ msgstr ""
188348msgid "Reset"
189349msgstr ""
190350
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
351+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192352msgid "Show less"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579
355+#: qml/Dash/GenericScopeView.qml:580
196356msgid "Show all"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:636
359+#: qml/Dash/GenericScopeView.qml:637
200360msgctxt "Label: Hint for dash search line edit"
201361msgid "Search"
202362msgstr "খুঁজুন"
203363
204−#: qml/Dash/PageHeaderExtraPanel.qml:55
364+#: qml/Dash/PageHeaderExtraPanel.qml:56
205365msgid "Recent Searches"
206366msgstr ""
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:66
368+#: qml/Dash/PageHeaderExtraPanel.qml:67
209369msgid "Clear All"
210370msgstr ""
211371
@@ -218,15 +378,15 @@ msgid "Less..."
218378msgstr "কম..."
219379
220380#: qml/Dash/Previews/PreviewCommentInput.qml:68
221−#: qml/Dash/Previews/PreviewRatingInput.qml:174
381+#: qml/Dash/Previews/PreviewRatingInput.qml:175
222382msgid "Send"
223383msgstr "পাঠান"
224384
225−#: qml/Dash/Previews/PreviewRatingInput.qml:84
385+#: qml/Dash/Previews/PreviewRatingInput.qml:82
226386msgid "Rate this"
227387msgstr "রেটিং দিন"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:129
389+#: qml/Dash/Previews/PreviewRatingInput.qml:157
230390msgid "Add a review"
231391msgstr "আপনার মতামত দিন"
232392
@@ -246,15 +406,15 @@ msgstr "রিফ্রেশ করার জন্য ছেড়ে দিন"
246406msgid "Enable location data"
247407msgstr "অবস্থান নির্ণয় চালু করুন"
248408
249−#: qml/Dash/ScopesList.qml:67
409+#: qml/Dash/ScopesList.qml:55
250410msgid "Manage"
251411msgstr "ব্যবস্থাপনা"
252412
253−#: qml/Dash/ScopesList.qml:113
413+#: qml/Dash/ScopesList.qml:101
254414msgid "Home"
255415msgstr ""
256416
257−#: qml/Dash/ScopesList.qml:114
417+#: qml/Dash/ScopesList.qml:102
258418msgid "Also installed"
259419msgstr "আরও ইন্সটল করা রয়েছে..."
260420
@@ -264,17 +424,17 @@ msgid ""
264424"touch pad to interact with the pointer."
265425msgstr ""
266426
267−#: qml/Greeter/CoverPage.qml:118
427+#: qml/Greeter/CoverPage.qml:119
268428msgid "Unlock"
269429msgstr "লক খুলুন"
270430
271−#: qml/Greeter/LoginList.qml:239
431+#: qml/Greeter/LoginList.qml:259
272432msgid "Retry"
273433msgstr ""
274434
275−#: qml/Greeter/LoginList.qml:240
276−msgid "Tap to unlock"
277−msgstr "লক খোলার জন্য চাপ দিন"
435+#: qml/Greeter/LoginList.qml:260
436+msgid "Log In"
437+msgstr ""
278438
279439#: qml/Greeter/NarrowView.qml:54
280440msgid "Sorry, incorrect passphrase."
@@ -403,18 +563,18 @@ msgstr "শেষ"
403563msgid "Failed, tap to retry"
404564msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
405565
406−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
407−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
566+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
567+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
408568msgctxt "Button: Send a reply message"
409569msgid "Send"
410570msgstr ""
411571
412−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
572+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
413573msgctxt "Label: Hint in message indicator line edit"
414574msgid "Reply"
415575msgstr "উত্তর দিন"
416576
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
418578msgctxt "Button: Call back on phone"
419579msgid "Call back"
420580msgstr "কল ব্যাক"
@@ -423,32 +583,12 @@ msgstr "কল ব্যাক"
423583msgid "Drag using 3 fingers any application from one window to the other"
424584msgstr ""
425585
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
586+#: qml/Tutorial/TutorialLeftLong.qml:49
447587msgid "Long swipe from the left edge to open the Today scope"
448588msgstr ""
449589
450590#: qml/Tutorial/TutorialLeft.qml:47
451−msgid "Swipe from the left edge to open the launcher"
591+msgid "Short swipe from the left edge to open the launcher"
452592msgstr ""
453593
454594#: qml/Tutorial/TutorialRight.qml:55
@@ -456,15 +596,11 @@ msgid "Push your mouse against the right edge to view your open apps"
456596msgstr ""
457597
458598#: qml/Tutorial/TutorialRight.qml:56
459−msgid "Short or long swipe from the right edge to view your open apps"
599+msgid "Swipe from the right edge to view your open apps"
460600msgstr ""
461601
462602#: 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"
603+msgid "Swipe from the top edge to access notifications and quick settings"
468604msgstr ""
469605
470606#: qml/Wizard/Page.qml:54
@@ -476,8 +612,8 @@ msgstr ""
476612msgid "Language"
477613msgstr ""
478614
479−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
480−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
615+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
616+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
481617#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
482618#: qml/Wizard/Pages/75-report-check.qml:84
483619#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -542,7 +678,7 @@ msgstr ""
542678msgid "Time Zone"
543679msgstr ""
544680
545−#: qml/Wizard/Pages/50-timezone.qml:178
681+#: qml/Wizard/Pages/50-timezone.qml:181
546682msgid "Enter your city"
547683msgstr ""
548684
@@ -860,6 +996,9 @@ msgstr ""
860996#~ msgid "Shut down"
861997#~ msgstr "বন্ধ করুন"
862998
999+#~ msgid "Tap to unlock"
1000+#~ msgstr "লক খোলার জন্য চাপ দিন"
1001+
8631002#~ msgid "Let’s get started."
8641003#~ msgstr "আসুন শুরু করা যাক।"
8651004
po/br.po+222−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2016-04-27 12:20+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -58,54 +58,54 @@ msgid_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
81−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: 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,16 +113,176 @@ 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/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+
126286#: qml/Components/Lockscreen.qml:231
127287msgid "Return to Call"
128288msgstr "Distreiñ d'ar bellgomzadenn"
@@ -164,26 +324,26 @@ msgstr "Adkevreañ bremañ !"
164324msgid "Close all"
165325msgstr "Serriñ pep tra"
166326
167−#: qml/Dash/DashPageHeader.qml:337
327+#: qml/Dash/DashPageHeader.qml:333
168328msgctxt "Button: Open the Ubuntu Store"
169329msgid "Store"
170330msgstr "Stal"
171331
172−#: qml/Dash/DashPageHeader.qml:344
332+#: qml/Dash/DashPageHeader.qml:340
173333msgctxt "Button: Start a search in the current dash scope"
174334msgid "Search"
175335msgstr "Klask"
176336
177−#: qml/Dash/DashPageHeader.qml:354
337+#: qml/Dash/DashPageHeader.qml:350
178338msgctxt "Button: Show the current dash scope settings"
179339msgid "Settings"
180340msgstr "Arventennoù"
181341
182−#: qml/Dash/DashPageHeader.qml:361
342+#: qml/Dash/DashPageHeader.qml:357
183343msgid "Remove from Favorites"
184344msgstr "Lemel eus ar sinedoù"
185345
186−#: qml/Dash/DashPageHeader.qml:361
346+#: qml/Dash/DashPageHeader.qml:357
187347msgid "Add to Favorites"
188348msgstr "Ouzhpennañ d'ar sinedoù"
189349
@@ -195,24 +355,24 @@ msgstr "Purañ ho tisoc'hoù"
195355msgid "Reset"
196356msgstr "Adderaouekaat"
197357
198−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
358+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
199359msgid "Show less"
200360msgstr ""
201361
202−#: qml/Dash/GenericScopeView.qml:579
362+#: qml/Dash/GenericScopeView.qml:580
203363msgid "Show all"
204364msgstr ""
205365
206−#: qml/Dash/GenericScopeView.qml:636
366+#: qml/Dash/GenericScopeView.qml:637
207367msgctxt "Label: Hint for dash search line edit"
208368msgid "Search"
209369msgstr "Klask"
210370
211−#: qml/Dash/PageHeaderExtraPanel.qml:55
371+#: qml/Dash/PageHeaderExtraPanel.qml:56
212372msgid "Recent Searches"
213373msgstr "Enklaskoù graet nevez zo"
214374
215−#: qml/Dash/PageHeaderExtraPanel.qml:66
375+#: qml/Dash/PageHeaderExtraPanel.qml:67
216376msgid "Clear All"
217377msgstr "Diverkañ pep tra"
218378
@@ -225,15 +385,15 @@ msgid "Less..."
225385msgstr "Nebeutoc'h..."
226386
227387#: qml/Dash/Previews/PreviewCommentInput.qml:68
228−#: qml/Dash/Previews/PreviewRatingInput.qml:174
388+#: qml/Dash/Previews/PreviewRatingInput.qml:175
229389msgid "Send"
230390msgstr "Kas"
231391
232−#: qml/Dash/Previews/PreviewRatingInput.qml:84
392+#: qml/Dash/Previews/PreviewRatingInput.qml:82
233393msgid "Rate this"
234394msgstr "Priziit an dra-mañ"
235395
236−#: qml/Dash/Previews/PreviewRatingInput.qml:129
396+#: qml/Dash/Previews/PreviewRatingInput.qml:157
237397msgid "Add a review"
238398msgstr "Ouzhpennañ un ali"
239399
@@ -253,15 +413,15 @@ msgstr "Lezel da vont evit freskaat..."
253413msgid "Enable location data"
254414msgstr "Gweredekaat ar roadennoù lec'hiañ"
255415
256−#: qml/Dash/ScopesList.qml:67
416+#: qml/Dash/ScopesList.qml:55
257417msgid "Manage"
258418msgstr "Merañ"
259419
260−#: qml/Dash/ScopesList.qml:113
420+#: qml/Dash/ScopesList.qml:101
261421msgid "Home"
262422msgstr "Er gêr"
263423
264−#: qml/Dash/ScopesList.qml:114
424+#: qml/Dash/ScopesList.qml:102
265425msgid "Also installed"
266426msgstr "Staliet ivez"
267427
@@ -271,17 +431,17 @@ msgid ""
271431"touch pad to interact with the pointer."
272432msgstr ""
273433
274−#: qml/Greeter/CoverPage.qml:118
434+#: qml/Greeter/CoverPage.qml:119
275435msgid "Unlock"
276436msgstr "Dibrennañ"
277437
278−#: qml/Greeter/LoginList.qml:239
438+#: qml/Greeter/LoginList.qml:259
279439msgid "Retry"
280440msgstr "Esaeañ en-dro"
281441
282−#: qml/Greeter/LoginList.qml:240
283−msgid "Tap to unlock"
284−msgstr "Pouezañ evit dibrennañ"
442+#: qml/Greeter/LoginList.qml:260
443+msgid "Log In"
444+msgstr ""
285445
286446#: qml/Greeter/NarrowView.qml:54
287447msgid "Sorry, incorrect passphrase."
@@ -413,18 +573,18 @@ msgstr "Echu"
413573msgid "Failed, tap to retry"
414574msgstr "C'hwitet, touchit evit adkregiñ"
415575
416−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
576+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
418578msgctxt "Button: Send a reply message"
419579msgid "Send"
420580msgstr "Kas"
421581
422−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
582+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
423583msgctxt "Label: Hint in message indicator line edit"
424584msgid "Reply"
425585msgstr "Respont"
426586
427−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
587+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
428588msgctxt "Button: Call back on phone"
429589msgid "Call back"
430590msgstr "Gervel en-dro"
@@ -433,32 +593,12 @@ msgstr "Gervel en-dro"
433593msgid "Drag using 3 fingers any application from one window to the other"
434594msgstr ""
435595
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
596+#: qml/Tutorial/TutorialLeftLong.qml:49
457597msgid "Long swipe from the left edge to open the Today scope"
458598msgstr ""
459599
460600#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
601+msgid "Short swipe from the left edge to open the launcher"
462602msgstr ""
463603
464604#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +606,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466606msgstr ""
467607
468608#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
609+msgid "Swipe from the right edge to view your open apps"
470610msgstr ""
471611
472612#: 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"
613+msgid "Swipe from the top edge to access notifications and quick settings"
478614msgstr ""
479615
480616#: qml/Wizard/Page.qml:54
@@ -486,8 +622,8 @@ msgstr "Distreiñ"
486622msgid "Language"
487623msgstr "Yezh"
488624
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
625+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
626+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491627#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492628#: qml/Wizard/Pages/75-report-check.qml:84
493629#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -552,7 +688,7 @@ msgstr ""
552688msgid "Time Zone"
553689msgstr "Gwerzhid-eur"
554690
555−#: qml/Wizard/Pages/50-timezone.qml:178
691+#: qml/Wizard/Pages/50-timezone.qml:181
556692msgid "Enter your city"
557693msgstr "Skrivit ho kêr"
558694
@@ -965,6 +1101,9 @@ msgstr "Ger-tremen diasur-kenañ"
9651101#~ msgid "%1 〉"
9661102#~ msgstr "%1 〉"
9671103
1104+#~ msgid "Tap to unlock"
1105+#~ msgstr "Pouezañ evit dibrennañ"
1106+
9681107#~ msgid "This action does different things for different apps"
9691108#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
9701109
@@ -1072,3 +1211,9 @@ msgstr "Ger-tremen diasur-kenañ"
10721211
10731212#~ msgid "Call back"
10741213#~ msgstr "Gervel en-dro"
1214+
1215+#~ msgid "Swipe up to add a contact"
1216+#~ msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
1217+
1218+#~ msgid "Swipe up to create a message"
1219+#~ msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
po/bs.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +16,23 @@ 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-05-25 06:08+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
20+"X-Generator: Launchpad (build 18097)\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
@@ -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
79−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
79+#: 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,16 +111,176 @@ 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/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+
124284#: qml/Components/Lockscreen.qml:231
125285msgid "Return to Call"
126286msgstr "Povratak na Poziv"
@@ -161,26 +321,26 @@ msgstr "Ponovo poveži sada"
161321msgid "Close all"
162322msgstr "Zatvori sve"
163323
164−#: qml/Dash/DashPageHeader.qml:337
324+#: qml/Dash/DashPageHeader.qml:333
165325msgctxt "Button: Open the Ubuntu Store"
166326msgid "Store"
167327msgstr "Trgovina"
168328
169−#: qml/Dash/DashPageHeader.qml:344
329+#: qml/Dash/DashPageHeader.qml:340
170330msgctxt "Button: Start a search in the current dash scope"
171331msgid "Search"
172332msgstr "Pretraživanje"
173333
174−#: qml/Dash/DashPageHeader.qml:354
334+#: qml/Dash/DashPageHeader.qml:350
175335msgctxt "Button: Show the current dash scope settings"
176336msgid "Settings"
177337msgstr "Podešavanja"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Remove from Favorites"
181341msgstr "Ukloni iz Omiljenih"
182342
183−#: qml/Dash/DashPageHeader.qml:361
343+#: qml/Dash/DashPageHeader.qml:357
184344msgid "Add to Favorites"
185345msgstr "Dodaj u Omiljene"
186346
@@ -192,24 +352,24 @@ msgstr ""
192352msgid "Reset"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
355+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196356msgid "Show less"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:579
359+#: qml/Dash/GenericScopeView.qml:580
200360msgid "Show all"
201361msgstr ""
202362
203−#: qml/Dash/GenericScopeView.qml:636
363+#: qml/Dash/GenericScopeView.qml:637
204364msgctxt "Label: Hint for dash search line edit"
205365msgid "Search"
206366msgstr "Pretraži"
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:55
368+#: qml/Dash/PageHeaderExtraPanel.qml:56
209369msgid "Recent Searches"
210370msgstr ""
211371
212−#: qml/Dash/PageHeaderExtraPanel.qml:66
372+#: qml/Dash/PageHeaderExtraPanel.qml:67
213373msgid "Clear All"
214374msgstr ""
215375
@@ -222,15 +382,15 @@ msgid "Less..."
222382msgstr "Manje..."
223383
224384#: qml/Dash/Previews/PreviewCommentInput.qml:68
225−#: qml/Dash/Previews/PreviewRatingInput.qml:174
385+#: qml/Dash/Previews/PreviewRatingInput.qml:175
226386msgid "Send"
227387msgstr "Pošalji"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:84
389+#: qml/Dash/Previews/PreviewRatingInput.qml:82
230390msgid "Rate this"
231391msgstr "Ocijeni ovo"
232392
233−#: qml/Dash/Previews/PreviewRatingInput.qml:129
393+#: qml/Dash/Previews/PreviewRatingInput.qml:157
234394msgid "Add a review"
235395msgstr "Dodaj recenziju"
236396
@@ -250,15 +410,15 @@ msgstr "Pustiti za osvježavanje..."
250410msgid "Enable location data"
251411msgstr "Omogućiti podatke o lokaciji"
252412
253−#: qml/Dash/ScopesList.qml:67
413+#: qml/Dash/ScopesList.qml:55
254414msgid "Manage"
255415msgstr "Upravljanje"
256416
257−#: qml/Dash/ScopesList.qml:113
417+#: qml/Dash/ScopesList.qml:101
258418msgid "Home"
259419msgstr "Početna"
260420
261−#: qml/Dash/ScopesList.qml:114
421+#: qml/Dash/ScopesList.qml:102
262422msgid "Also installed"
263423msgstr "Također instalirano"
264424
@@ -268,17 +428,17 @@ msgid ""
268428"touch pad to interact with the pointer."
269429msgstr ""
270430
271−#: qml/Greeter/CoverPage.qml:118
431+#: qml/Greeter/CoverPage.qml:119
272432msgid "Unlock"
273433msgstr "Otključaj"
274434
275−#: qml/Greeter/LoginList.qml:239
435+#: qml/Greeter/LoginList.qml:259
276436msgid "Retry"
277437msgstr "Ponovi"
278438
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
281−msgstr "Kucnite za otključavanje"
439+#: qml/Greeter/LoginList.qml:260
440+msgid "Log In"
441+msgstr ""
282442
283443#: qml/Greeter/NarrowView.qml:54
284444msgid "Sorry, incorrect passphrase."
@@ -413,18 +573,18 @@ msgstr "Završeno"
413573msgid "Failed, tap to retry"
414574msgstr "Neuspjelo, kucnuti za ponavljanje"
415575
416−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
576+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
418578msgctxt "Button: Send a reply message"
419579msgid "Send"
420580msgstr "Pošalji"
421581
422−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
582+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
423583msgctxt "Label: Hint in message indicator line edit"
424584msgid "Reply"
425585msgstr "Odgovorite"
426586
427−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
587+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
428588msgctxt "Button: Call back on phone"
429589msgid "Call back"
430590msgstr "Uzvrati poziv"
@@ -433,32 +593,12 @@ msgstr "Uzvrati poziv"
433593msgid "Drag using 3 fingers any application from one window to the other"
434594msgstr ""
435595
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
596+#: qml/Tutorial/TutorialLeftLong.qml:49
457597msgid "Long swipe from the left edge to open the Today scope"
458598msgstr ""
459599
460600#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
601+msgid "Short swipe from the left edge to open the launcher"
462602msgstr ""
463603
464604#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +606,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466606msgstr ""
467607
468608#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
609+msgid "Swipe from the right edge to view your open apps"
470610msgstr ""
471611
472612#: 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"
613+msgid "Swipe from the top edge to access notifications and quick settings"
478614msgstr ""
479615
480616#: qml/Wizard/Page.qml:54
@@ -486,8 +622,8 @@ msgstr "Nazad"
486622msgid "Language"
487623msgstr ""
488624
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
625+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
626+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491627#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492628#: qml/Wizard/Pages/75-report-check.qml:84
493629#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -552,7 +688,7 @@ msgstr ""
552688msgid "Time Zone"
553689msgstr ""
554690
555−#: qml/Wizard/Pages/50-timezone.qml:178
691+#: qml/Wizard/Pages/50-timezone.qml:181
556692msgid "Enter your city"
557693msgstr ""
558694
@@ -773,6 +909,9 @@ msgstr ""
773909#~ msgid "See less"
774910#~ msgstr "Pogledati manje"
775911
912+#~ msgid "Tap to unlock"
913+#~ msgstr "Kucnite za otključavanje"
914+
776915#~ msgid "Please re-enter"
777916#~ msgstr "Molimo ponovo unesite"
778917
po/ca.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2015-07-04 09:48+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -58,54 +58,54 @@ msgid_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
81−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: 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,16 +113,176 @@ 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/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+
126286#: qml/Components/Lockscreen.qml:231
127287msgid "Return to Call"
128288msgstr "Torna a la trucada"
@@ -161,26 +321,26 @@ msgstr "Torna a connectar"
161321msgid "Close all"
162322msgstr "Tanca-ho tot"
163323
164−#: qml/Dash/DashPageHeader.qml:337
324+#: qml/Dash/DashPageHeader.qml:333
165325msgctxt "Button: Open the Ubuntu Store"
166326msgid "Store"
167327msgstr "Botiga"
168328
169−#: qml/Dash/DashPageHeader.qml:344
329+#: qml/Dash/DashPageHeader.qml:340
170330msgctxt "Button: Start a search in the current dash scope"
171331msgid "Search"
172332msgstr "Cerca"
173333
174−#: qml/Dash/DashPageHeader.qml:354
334+#: qml/Dash/DashPageHeader.qml:350
175335msgctxt "Button: Show the current dash scope settings"
176336msgid "Settings"
177337msgstr "Paràmetres"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Remove from Favorites"
181341msgstr "Suprimeix dels preferits"
182342
183−#: qml/Dash/DashPageHeader.qml:361
343+#: qml/Dash/DashPageHeader.qml:357
184344msgid "Add to Favorites"
185345msgstr "Afegeix als preferits"
186346
@@ -192,24 +352,24 @@ msgstr ""
192352msgid "Reset"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
355+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196356msgid "Show less"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:579
359+#: qml/Dash/GenericScopeView.qml:580
200360msgid "Show all"
201361msgstr ""
202362
203−#: qml/Dash/GenericScopeView.qml:636
363+#: qml/Dash/GenericScopeView.qml:637
204364msgctxt "Label: Hint for dash search line edit"
205365msgid "Search"
206366msgstr "Cerca"
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:55
368+#: qml/Dash/PageHeaderExtraPanel.qml:56
209369msgid "Recent Searches"
210370msgstr "Cerques recents"
211371
212−#: qml/Dash/PageHeaderExtraPanel.qml:66
372+#: qml/Dash/PageHeaderExtraPanel.qml:67
213373msgid "Clear All"
214374msgstr "Neteja-ho tot"
215375
@@ -222,15 +382,15 @@ msgid "Less..."
222382msgstr "Menys..."
223383
224384#: qml/Dash/Previews/PreviewCommentInput.qml:68
225−#: qml/Dash/Previews/PreviewRatingInput.qml:174
385+#: qml/Dash/Previews/PreviewRatingInput.qml:175
226386msgid "Send"
227387msgstr "Envia"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:84
389+#: qml/Dash/Previews/PreviewRatingInput.qml:82
230390msgid "Rate this"
231391msgstr "Puntueu-ho"
232392
233−#: qml/Dash/Previews/PreviewRatingInput.qml:129
393+#: qml/Dash/Previews/PreviewRatingInput.qml:157
234394msgid "Add a review"
235395msgstr "Afegiu una ressenya"
236396
@@ -250,15 +410,15 @@ msgstr "Deixeu anar per actualitzar..."
250410msgid "Enable location data"
251411msgstr "Habilita les dades d'ubicació"
252412
253−#: qml/Dash/ScopesList.qml:67
413+#: qml/Dash/ScopesList.qml:55
254414msgid "Manage"
255415msgstr "Gestiona"
256416
257−#: qml/Dash/ScopesList.qml:113
417+#: qml/Dash/ScopesList.qml:101
258418msgid "Home"
259419msgstr "Inici"
260420
261−#: qml/Dash/ScopesList.qml:114
421+#: qml/Dash/ScopesList.qml:102
262422msgid "Also installed"
263423msgstr "També instal·lat"
264424
@@ -268,17 +428,17 @@ msgid ""
268428"touch pad to interact with the pointer."
269429msgstr ""
270430
271−#: qml/Greeter/CoverPage.qml:118
431+#: qml/Greeter/CoverPage.qml:119
272432msgid "Unlock"
273433msgstr "Desbloca"
274434
275−#: qml/Greeter/LoginList.qml:239
435+#: qml/Greeter/LoginList.qml:259
276436msgid "Retry"
277437msgstr "Torna-ho a provar"
278438
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
281−msgstr "Feu un toc per desblocar"
439+#: qml/Greeter/LoginList.qml:260
440+msgid "Log In"
441+msgstr ""
282442
283443#: qml/Greeter/NarrowView.qml:54
284444msgid "Sorry, incorrect passphrase."
@@ -412,18 +572,18 @@ msgstr "S'ha finalitzat"
412572msgid "Failed, tap to retry"
413573msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
414574
415−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
416−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
575+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
576+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
417577msgctxt "Button: Send a reply message"
418578msgid "Send"
419579msgstr "Envia"
420580
421−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
581+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
422582msgctxt "Label: Hint in message indicator line edit"
423583msgid "Reply"
424584msgstr "Respon"
425585
426−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
586+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
427587msgctxt "Button: Call back on phone"
428588msgid "Call back"
429589msgstr "Retorna la trucada"
@@ -432,32 +592,12 @@ msgstr "Retorna la trucada"
432592msgid "Drag using 3 fingers any application from one window to the other"
433593msgstr ""
434594
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
595+#: qml/Tutorial/TutorialLeftLong.qml:49
456596msgid "Long swipe from the left edge to open the Today scope"
457597msgstr ""
458598
459599#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "Swipe from the left edge to open the launcher"
600+msgid "Short swipe from the left edge to open the launcher"
461601msgstr ""
462602
463603#: qml/Tutorial/TutorialRight.qml:55
@@ -465,15 +605,11 @@ msgid "Push your mouse against the right edge to view your open apps"
465605msgstr ""
466606
467607#: qml/Tutorial/TutorialRight.qml:56
468−msgid "Short or long swipe from the right edge to view your open apps"
608+msgid "Swipe from the right edge to view your open apps"
469609msgstr ""
470610
471611#: 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"
612+msgid "Swipe from the top edge to access notifications and quick settings"
477613msgstr ""
478614
479615#: qml/Wizard/Page.qml:54
@@ -485,8 +621,8 @@ msgstr "Enrere"
485621msgid "Language"
486622msgstr ""
487623
488−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
489−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
624+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
625+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
490626#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491627#: qml/Wizard/Pages/75-report-check.qml:84
492628#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -551,7 +687,7 @@ msgstr ""
551687msgid "Time Zone"
552688msgstr ""
553689
554−#: qml/Wizard/Pages/50-timezone.qml:178
690+#: qml/Wizard/Pages/50-timezone.qml:181
555691msgid "Enter your city"
556692msgstr ""
557693
@@ -978,6 +1114,9 @@ msgstr ""
9781114#~ msgid "Open special menus"
9791115#~ msgstr "Obre els menús especials"
9801116
1117+#~ msgid "Tap to unlock"
1118+#~ msgstr "Feu un toc per desblocar"
1119+
9811120#~ msgid "To view open apps"
9821121#~ msgstr "Per veure les aplicacions obertes"
9831122
po/ca@valencia.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:09+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:55+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -58,54 +58,54 @@ msgid_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
81−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: 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,16 +113,176 @@ 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/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+
126286#: qml/Components/Lockscreen.qml:231
127287msgid "Return to Call"
128288msgstr "Torna a la cridada"
@@ -161,26 +321,26 @@ msgstr ""
161321msgid "Close all"
162322msgstr ""
163323
164−#: qml/Dash/DashPageHeader.qml:337
324+#: qml/Dash/DashPageHeader.qml:333
165325msgctxt "Button: Open the Ubuntu Store"
166326msgid "Store"
167327msgstr ""
168328
169−#: qml/Dash/DashPageHeader.qml:344
329+#: qml/Dash/DashPageHeader.qml:340
170330msgctxt "Button: Start a search in the current dash scope"
171331msgid "Search"
172332msgstr ""
173333
174−#: qml/Dash/DashPageHeader.qml:354
334+#: qml/Dash/DashPageHeader.qml:350
175335msgctxt "Button: Show the current dash scope settings"
176336msgid "Settings"
177337msgstr ""
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Remove from Favorites"
181341msgstr "Suprimeix dels preferits"
182342
183−#: qml/Dash/DashPageHeader.qml:361
343+#: qml/Dash/DashPageHeader.qml:357
184344msgid "Add to Favorites"
185345msgstr "Afig als preferits"
186346
@@ -192,24 +352,24 @@ msgstr ""
192352msgid "Reset"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
355+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196356msgid "Show less"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:579
359+#: qml/Dash/GenericScopeView.qml:580
200360msgid "Show all"
201361msgstr ""
202362
203−#: qml/Dash/GenericScopeView.qml:636
363+#: qml/Dash/GenericScopeView.qml:637
204364msgctxt "Label: Hint for dash search line edit"
205365msgid "Search"
206366msgstr ""
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:55
368+#: qml/Dash/PageHeaderExtraPanel.qml:56
209369msgid "Recent Searches"
210370msgstr ""
211371
212−#: qml/Dash/PageHeaderExtraPanel.qml:66
372+#: qml/Dash/PageHeaderExtraPanel.qml:67
213373msgid "Clear All"
214374msgstr ""
215375
@@ -222,15 +382,15 @@ msgid "Less..."
222382msgstr "Menys..."
223383
224384#: qml/Dash/Previews/PreviewCommentInput.qml:68
225−#: qml/Dash/Previews/PreviewRatingInput.qml:174
385+#: qml/Dash/Previews/PreviewRatingInput.qml:175
226386msgid "Send"
227387msgstr "Envia"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:84
389+#: qml/Dash/Previews/PreviewRatingInput.qml:82
230390msgid "Rate this"
231391msgstr "Puntueu-ho"
232392
233−#: qml/Dash/Previews/PreviewRatingInput.qml:129
393+#: qml/Dash/Previews/PreviewRatingInput.qml:157
234394msgid "Add a review"
235395msgstr "Afegiu una ressenya"
236396
@@ -250,15 +410,15 @@ msgstr "Deixeu anar per actualitzar..."
250410msgid "Enable location data"
251411msgstr "Habilita les dades d'ubicació"
252412
253−#: qml/Dash/ScopesList.qml:67
413+#: qml/Dash/ScopesList.qml:55
254414msgid "Manage"
255415msgstr "Gestiona"
256416
257−#: qml/Dash/ScopesList.qml:113
417+#: qml/Dash/ScopesList.qml:101
258418msgid "Home"
259419msgstr "Inici"
260420
261−#: qml/Dash/ScopesList.qml:114
421+#: qml/Dash/ScopesList.qml:102
262422msgid "Also installed"
263423msgstr "També instal·lat"
264424
@@ -268,16 +428,16 @@ msgid ""
268428"touch pad to interact with the pointer."
269429msgstr ""
270430
271−#: qml/Greeter/CoverPage.qml:118
431+#: qml/Greeter/CoverPage.qml:119
272432msgid "Unlock"
273433msgstr "Desbloca"
274434
275−#: qml/Greeter/LoginList.qml:239
435+#: qml/Greeter/LoginList.qml:259
276436msgid "Retry"
277437msgstr ""
278438
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
439+#: qml/Greeter/LoginList.qml:260
440+msgid "Log In"
281441msgstr ""
282442
283443#: qml/Greeter/NarrowView.qml:54
@@ -412,18 +572,18 @@ msgstr "S'ha finalitzat"
412572msgid "Failed, tap to retry"
413573msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
414574
415−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
416−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
575+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
576+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
417577msgctxt "Button: Send a reply message"
418578msgid "Send"
419579msgstr ""
420580
421−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
581+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
422582msgctxt "Label: Hint in message indicator line edit"
423583msgid "Reply"
424584msgstr ""
425585
426−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
586+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
427587msgctxt "Button: Call back on phone"
428588msgid "Call back"
429589msgstr ""
@@ -432,32 +592,12 @@ msgstr ""
432592msgid "Drag using 3 fingers any application from one window to the other"
433593msgstr ""
434594
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
595+#: qml/Tutorial/TutorialLeftLong.qml:49
456596msgid "Long swipe from the left edge to open the Today scope"
457597msgstr ""
458598
459599#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "Swipe from the left edge to open the launcher"
600+msgid "Short swipe from the left edge to open the launcher"
461601msgstr ""
462602
463603#: qml/Tutorial/TutorialRight.qml:55
@@ -465,15 +605,11 @@ msgid "Push your mouse against the right edge to view your open apps"
465605msgstr ""
466606
467607#: qml/Tutorial/TutorialRight.qml:56
468−msgid "Short or long swipe from the right edge to view your open apps"
608+msgid "Swipe from the right edge to view your open apps"
469609msgstr ""
470610
471611#: 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"
612+msgid "Swipe from the top edge to access notifications and quick settings"
477613msgstr ""
478614
479615#: qml/Wizard/Page.qml:54
@@ -485,8 +621,8 @@ msgstr ""
485621msgid "Language"
486622msgstr ""
487623
488−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
489−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
624+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
625+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
490626#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491627#: qml/Wizard/Pages/75-report-check.qml:84
492628#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -551,7 +687,7 @@ msgstr ""
551687msgid "Time Zone"
552688msgstr ""
553689
554−#: qml/Wizard/Pages/50-timezone.qml:178
690+#: qml/Wizard/Pages/50-timezone.qml:181
555691msgid "Enter your city"
556692msgstr ""
557693
po/ce.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,69 +54,229 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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/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+
120280#: qml/Components/Lockscreen.qml:231
121281msgid "Return to Call"
122282msgstr ""
@@ -155,26 +315,26 @@ msgstr ""
155315msgid "Close all"
156316msgstr ""
157317
158−#: qml/Dash/DashPageHeader.qml:337
318+#: qml/Dash/DashPageHeader.qml:333
159319msgctxt "Button: Open the Ubuntu Store"
160320msgid "Store"
161321msgstr ""
162322
163−#: qml/Dash/DashPageHeader.qml:344
323+#: qml/Dash/DashPageHeader.qml:340
164324msgctxt "Button: Start a search in the current dash scope"
165325msgid "Search"
166326msgstr ""
167327
168−#: qml/Dash/DashPageHeader.qml:354
328+#: qml/Dash/DashPageHeader.qml:350
169329msgctxt "Button: Show the current dash scope settings"
170330msgid "Settings"
171331msgstr ""
172332
173−#: qml/Dash/DashPageHeader.qml:361
333+#: qml/Dash/DashPageHeader.qml:357
174334msgid "Remove from Favorites"
175335msgstr ""
176336
177−#: qml/Dash/DashPageHeader.qml:361
337+#: qml/Dash/DashPageHeader.qml:357
178338msgid "Add to Favorites"
179339msgstr ""
180340
@@ -186,24 +346,24 @@ msgstr ""
186346msgid "Reset"
187347msgstr ""
188348
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
349+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190350msgid "Show less"
191351msgstr ""
192352
193−#: qml/Dash/GenericScopeView.qml:579
353+#: qml/Dash/GenericScopeView.qml:580
194354msgid "Show all"
195355msgstr ""
196356
197−#: qml/Dash/GenericScopeView.qml:636
357+#: qml/Dash/GenericScopeView.qml:637
198358msgctxt "Label: Hint for dash search line edit"
199359msgid "Search"
200360msgstr ""
201361
202−#: qml/Dash/PageHeaderExtraPanel.qml:55
362+#: qml/Dash/PageHeaderExtraPanel.qml:56
203363msgid "Recent Searches"
204364msgstr ""
205365
206−#: qml/Dash/PageHeaderExtraPanel.qml:66
366+#: qml/Dash/PageHeaderExtraPanel.qml:67
207367msgid "Clear All"
208368msgstr ""
209369
@@ -216,15 +376,15 @@ msgid "Less..."
216376msgstr ""
217377
218378#: qml/Dash/Previews/PreviewCommentInput.qml:68
219−#: qml/Dash/Previews/PreviewRatingInput.qml:174
379+#: qml/Dash/Previews/PreviewRatingInput.qml:175
220380msgid "Send"
221381msgstr ""
222382
223−#: qml/Dash/Previews/PreviewRatingInput.qml:84
383+#: qml/Dash/Previews/PreviewRatingInput.qml:82
224384msgid "Rate this"
225385msgstr ""
226386
227−#: qml/Dash/Previews/PreviewRatingInput.qml:129
387+#: qml/Dash/Previews/PreviewRatingInput.qml:157
228388msgid "Add a review"
229389msgstr ""
230390
@@ -244,15 +404,15 @@ msgstr ""
244404msgid "Enable location data"
245405msgstr ""
246406
247−#: qml/Dash/ScopesList.qml:67
407+#: qml/Dash/ScopesList.qml:55
248408msgid "Manage"
249409msgstr ""
250410
251−#: qml/Dash/ScopesList.qml:113
411+#: qml/Dash/ScopesList.qml:101
252412msgid "Home"
253413msgstr ""
254414
255−#: qml/Dash/ScopesList.qml:114
415+#: qml/Dash/ScopesList.qml:102
256416msgid "Also installed"
257417msgstr ""
258418
@@ -262,16 +422,16 @@ msgid ""
262422"touch pad to interact with the pointer."
263423msgstr ""
264424
265−#: qml/Greeter/CoverPage.qml:118
425+#: qml/Greeter/CoverPage.qml:119
266426msgid "Unlock"
267427msgstr ""
268428
269−#: qml/Greeter/LoginList.qml:239
429+#: qml/Greeter/LoginList.qml:259
270430msgid "Retry"
271431msgstr ""
272432
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
433+#: qml/Greeter/LoginList.qml:260
434+msgid "Log In"
275435msgstr ""
276436
277437#: qml/Greeter/NarrowView.qml:54
@@ -400,18 +560,18 @@ msgstr ""
400560msgid "Failed, tap to retry"
401561msgstr ""
402562
403−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
563+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
564+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
405565msgctxt "Button: Send a reply message"
406566msgid "Send"
407567msgstr ""
408568
409−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
569+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
410570msgctxt "Label: Hint in message indicator line edit"
411571msgid "Reply"
412572msgstr ""
413573
414−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
574+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
415575msgctxt "Button: Call back on phone"
416576msgid "Call back"
417577msgstr ""
@@ -420,32 +580,12 @@ msgstr ""
420580msgid "Drag using 3 fingers any application from one window to the other"
421581msgstr ""
422582
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
583+#: qml/Tutorial/TutorialLeftLong.qml:49
444584msgid "Long swipe from the left edge to open the Today scope"
445585msgstr ""
446586
447587#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
588+msgid "Short swipe from the left edge to open the launcher"
449589msgstr ""
450590
451591#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +593,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453593msgstr ""
454594
455595#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
596+msgid "Swipe from the right edge to view your open apps"
457597msgstr ""
458598
459599#: 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"
600+msgid "Swipe from the top edge to access notifications and quick settings"
465601msgstr ""
466602
467603#: qml/Wizard/Page.qml:54
@@ -473,8 +609,8 @@ msgstr ""
473609msgid "Language"
474610msgstr ""
475611
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
612+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478614#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479615#: qml/Wizard/Pages/75-report-check.qml:84
480616#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -539,7 +675,7 @@ msgstr ""
539675msgid "Time Zone"
540676msgstr ""
541677
542−#: qml/Wizard/Pages/50-timezone.qml:178
678+#: qml/Wizard/Pages/50-timezone.qml:181
543679msgid "Enter your city"
544680msgstr ""
545681
po/ckb.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +15,23 @@ 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-05-25 06:09+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:55+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -54,69 +54,229 @@ msgid_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
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: 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/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+
120280#: qml/Components/Lockscreen.qml:231
121281msgid "Return to Call"
122282msgstr ""
@@ -155,26 +315,26 @@ msgstr ""
155315msgid "Close all"
156316msgstr ""
157317
158−#: qml/Dash/DashPageHeader.qml:337
318+#: qml/Dash/DashPageHeader.qml:333
159319msgctxt "Button: Open the Ubuntu Store"
160320msgid "Store"
161321msgstr ""
162322
163−#: qml/Dash/DashPageHeader.qml:344
323+#: qml/Dash/DashPageHeader.qml:340
164324msgctxt "Button: Start a search in the current dash scope"
165325msgid "Search"
166326msgstr ""
167327
168−#: qml/Dash/DashPageHeader.qml:354
328+#: qml/Dash/DashPageHeader.qml:350
169329msgctxt "Button: Show the current dash scope settings"
170330msgid "Settings"
171331msgstr ""
172332
173−#: qml/Dash/DashPageHeader.qml:361
333+#: qml/Dash/DashPageHeader.qml:357
174334msgid "Remove from Favorites"
175335msgstr ""
176336
177−#: qml/Dash/DashPageHeader.qml:361
337+#: qml/Dash/DashPageHeader.qml:357
178338msgid "Add to Favorites"
179339msgstr ""
180340
@@ -186,24 +346,24 @@ msgstr ""
186346msgid "Reset"
187347msgstr ""
188348
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
349+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190350msgid "Show less"
191351msgstr ""
192352
193−#: qml/Dash/GenericScopeView.qml:579
353+#: qml/Dash/GenericScopeView.qml:580
194354msgid "Show all"
195355msgstr ""
196356
197−#: qml/Dash/GenericScopeView.qml:636
357+#: qml/Dash/GenericScopeView.qml:637
198358msgctxt "Label: Hint for dash search line edit"
199359msgid "Search"
200360msgstr ""
201361
202−#: qml/Dash/PageHeaderExtraPanel.qml:55
362+#: qml/Dash/PageHeaderExtraPanel.qml:56
203363msgid "Recent Searches"
204364msgstr ""
205365
206−#: qml/Dash/PageHeaderExtraPanel.qml:66
366+#: qml/Dash/PageHeaderExtraPanel.qml:67
207367msgid "Clear All"
208368msgstr ""
209369
@@ -216,15 +376,15 @@ msgid "Less..."
216376msgstr ""
217377
218378#: qml/Dash/Previews/PreviewCommentInput.qml:68
219−#: qml/Dash/Previews/PreviewRatingInput.qml:174
379+#: qml/Dash/Previews/PreviewRatingInput.qml:175
220380msgid "Send"
221381msgstr "ناردن"
222382
223−#: qml/Dash/Previews/PreviewRatingInput.qml:84
383+#: qml/Dash/Previews/PreviewRatingInput.qml:82
224384msgid "Rate this"
225385msgstr "پلە دابنی بۆی"
226386
227−#: qml/Dash/Previews/PreviewRatingInput.qml:129
387+#: qml/Dash/Previews/PreviewRatingInput.qml:157
228388msgid "Add a review"
229389msgstr "پێداچوونەوە زۆر بکە"
230390
@@ -244,15 +404,15 @@ msgstr ""
244404msgid "Enable location data"
245405msgstr ""
246406
247−#: qml/Dash/ScopesList.qml:67
407+#: qml/Dash/ScopesList.qml:55
248408msgid "Manage"
249409msgstr ""
250410
251−#: qml/Dash/ScopesList.qml:113
411+#: qml/Dash/ScopesList.qml:101
252412msgid "Home"
253413msgstr ""
254414
255−#: qml/Dash/ScopesList.qml:114
415+#: qml/Dash/ScopesList.qml:102
256416msgid "Also installed"
257417msgstr ""
258418
@@ -262,16 +422,16 @@ msgid ""
262422"touch pad to interact with the pointer."
263423msgstr ""
264424
265−#: qml/Greeter/CoverPage.qml:118
425+#: qml/Greeter/CoverPage.qml:119
266426msgid "Unlock"
267427msgstr ""
268428
269−#: qml/Greeter/LoginList.qml:239
429+#: qml/Greeter/LoginList.qml:259
270430msgid "Retry"
271431msgstr ""
272432
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
433+#: qml/Greeter/LoginList.qml:260
434+msgid "Log In"
275435msgstr ""
276436
277437#: qml/Greeter/NarrowView.qml:54
@@ -400,18 +560,18 @@ msgstr ""
400560msgid "Failed, tap to retry"
401561msgstr ""
402562
403−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
563+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
564+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
405565msgctxt "Button: Send a reply message"
406566msgid "Send"
407567msgstr ""
408568
409−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
569+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
410570msgctxt "Label: Hint in message indicator line edit"
411571msgid "Reply"
412572msgstr ""
413573
414−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
574+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
415575msgctxt "Button: Call back on phone"
416576msgid "Call back"
417577msgstr ""
@@ -420,32 +580,12 @@ msgstr ""
420580msgid "Drag using 3 fingers any application from one window to the other"
421581msgstr ""
422582
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
583+#: qml/Tutorial/TutorialLeftLong.qml:49
444584msgid "Long swipe from the left edge to open the Today scope"
445585msgstr ""
446586
447587#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
588+msgid "Short swipe from the left edge to open the launcher"
449589msgstr ""
450590
451591#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +593,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453593msgstr ""
454594
455595#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
596+msgid "Swipe from the right edge to view your open apps"
457597msgstr ""
458598
459599#: 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"
600+msgid "Swipe from the top edge to access notifications and quick settings"
465601msgstr ""
466602
467603#: qml/Wizard/Page.qml:54
@@ -473,8 +609,8 @@ msgstr ""
473609msgid "Language"
474610msgstr ""
475611
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
612+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478614#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479615#: qml/Wizard/Pages/75-report-check.qml:84
480616#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -539,7 +675,7 @@ msgstr ""
539675msgid "Time Zone"
540676msgstr ""
541677
542−#: qml/Wizard/Pages/50-timezone.qml:178
678+#: qml/Wizard/Pages/50-timezone.qml:181
543679msgid "Enter your city"
544680msgstr ""
545681
po/co.po+417−215
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,437 +15,592 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
23−msgstr ""
23+msgstr "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"
28−msgstr ""
28+msgstr "Fissà l'accurtatoghju"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
32−msgstr ""
32+msgstr "Abbandunà"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
36−msgstr ""
36+msgstr "Toglie l'accurtatoghju"
3737
3838#: qml/Components/DelayedLockscreen.qml:49
3939msgid "Device Locked"
40−msgstr ""
40+msgstr "Dispusitivu bluccatu"
4141
4242#: qml/Components/DelayedLockscreen.qml:64
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
45+"Site stati bluccati per troppi tentativi fallati d'inserimentu di a frasa "
46+"d'ordine."
4547
4648#: qml/Components/DelayedLockscreen.qml:65
4749msgid "You have been locked out due to too many failed passcode attempts."
4850msgstr ""
51+"Site stati bluccati per troppi tentativi fallati d'inserimentu di u codice "
52+"d'accessu."
4953
5054#: qml/Components/DelayedLockscreen.qml:74
5155#, qt-format
5256msgid "Please wait %1 minute and then try again…"
5357msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
58+msgstr[0] "Aspettà %1 minutu è po turnà à pruvà…"
59+msgstr[1] "Aspettà %1 minuti è po turnà à pruvà…"
5660
57−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
5862msgctxt "Title: Lock/Log out dialog"
5963msgid "Log out"
60−msgstr ""
64+msgstr "Escì"
6165
62−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
6367msgid "Are you sure you want to log out?"
64−msgstr ""
68+msgstr "Site sicuri di vulè escì?"
6569
66−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
6771msgctxt "Button: Lock the system"
6872msgid "Lock"
69−msgstr ""
73+msgstr "Bluccà"
7074
71−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
7276msgctxt "Button: Log out from the system"
7377msgid "Log Out"
74−msgstr ""
78+msgstr "Escì"
7579
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7882#: qml/Wizard/Pages/passcode-set.qml:32
7983msgid "Cancel"
80−msgstr ""
84+msgstr "Annullà"
8185
82−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
8387msgctxt "Title: Reboot dialog"
8488msgid "Reboot"
85−msgstr ""
89+msgstr "Turnà ad avvià"
8690
87−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
8892msgid "Are you sure you want to reboot?"
89−msgstr ""
93+msgstr "Site sicuri di vulè turnà ad avvià?"
9094
91−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9296msgid "No"
93−msgstr ""
97+msgstr "Nò"
9498
95−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
96100msgid "Yes"
97−msgstr ""
101+msgstr "Iè"
98102
99−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
100104msgctxt "Title: Power off/Restart dialog"
101105msgid "Power"
102−msgstr ""
106+msgstr "Alimentazione"
103107
104−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
105109msgid ""
106110"Are you sure you would like\n"
107111"to power off?"
108112msgstr ""
113+"Site sicuri di vulè\n"
114+"spenghje?"
109115
110−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
111117msgctxt "Button: Power off the system"
112118msgid "Power off"
113−msgstr ""
119+msgstr "Spenghje"
114120
115−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
116122msgctxt "Button: Restart the system"
117123msgid "Restart"
124+msgstr "Turnà ad avvià"
125+
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."
118284msgstr ""
119285
120286#: qml/Components/Lockscreen.qml:231
121287msgid "Return to Call"
122−msgstr ""
288+msgstr "Turnà à a Chjamata"
123289
124290#: qml/Components/Lockscreen.qml:231
125291msgid "Emergency Call"
126−msgstr ""
292+msgstr "Chjamata d'emergenza"
127293
128294#: qml/Components/Lockscreen.qml:263
129295msgid "OK"
130−msgstr ""
296+msgstr "OK"
131297
132298#: qml/Components/ModeSwitchWarningDialog.qml:32
133299msgid "Apps may have unsaved data:"
134−msgstr ""
300+msgstr "E app puderebbenu avè dati micca salvati:"
135301
136302#: qml/Components/ModeSwitchWarningDialog.qml:57
137303msgctxt ""
138304"Re-dock means connect the device again to an external screen/mouse/keyboard"
139305msgid "Re-dock, save your work and close these apps to continue."
140306msgstr ""
307+"Turnà à cullegà, salvà u travagliu fattu è chjode sse applicazioni per "
308+"continuà."
141309
142310#: qml/Components/ModeSwitchWarningDialog.qml:63
143311msgid "Or force close now (unsaved data will be lost)."
144−msgstr ""
312+msgstr "O furzà a chjusura avà (i dati micca salvati seranu perduti)."
145313
146314#: qml/Components/ModeSwitchWarningDialog.qml:75
147315msgid "OK, I will reconnect"
148−msgstr ""
316+msgstr "OK, sto cunnettendumi..."
149317
150318#: qml/Components/ModeSwitchWarningDialog.qml:76
151319msgid "Reconnect now!"
152−msgstr ""
320+msgstr "Turnà à cunnettesi avà!"
153321
154322#: qml/Components/ModeSwitchWarningDialog.qml:88
155323msgid "Close all"
156−msgstr ""
324+msgstr "Chjode tuttu"
157325
158−#: qml/Dash/DashPageHeader.qml:337
326+#: qml/Dash/DashPageHeader.qml:333
159327msgctxt "Button: Open the Ubuntu Store"
160328msgid "Store"
161−msgstr ""
329+msgstr "Buttega"
162330
163−#: qml/Dash/DashPageHeader.qml:344
331+#: qml/Dash/DashPageHeader.qml:340
164332msgctxt "Button: Start a search in the current dash scope"
165333msgid "Search"
166−msgstr ""
334+msgstr "Circà"
167335
168−#: qml/Dash/DashPageHeader.qml:354
336+#: qml/Dash/DashPageHeader.qml:350
169337msgctxt "Button: Show the current dash scope settings"
170338msgid "Settings"
171−msgstr ""
339+msgstr "Parametri"
172340
173−#: qml/Dash/DashPageHeader.qml:361
341+#: qml/Dash/DashPageHeader.qml:357
174342msgid "Remove from Favorites"
175−msgstr ""
343+msgstr "Toglie da i Favuriti"
176344
177−#: qml/Dash/DashPageHeader.qml:361
345+#: qml/Dash/DashPageHeader.qml:357
178346msgid "Add to Favorites"
179−msgstr ""
347+msgstr "Aghjustà à i Favuriti"
180348
181349#: qml/Dash/FiltersPopover.qml:60
182350msgid "Refine your results"
183−msgstr ""
351+msgstr "Raffinà i risultati"
184352
185353#: qml/Dash/FiltersPopover.qml:69
186354msgid "Reset"
187−msgstr ""
355+msgstr "Re-inizializzà"
188356
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
357+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190358msgid "Show less"
191359msgstr ""
192360
193−#: qml/Dash/GenericScopeView.qml:579
361+#: qml/Dash/GenericScopeView.qml:580
194362msgid "Show all"
195363msgstr ""
196364
197−#: qml/Dash/GenericScopeView.qml:636
365+#: qml/Dash/GenericScopeView.qml:637
198366msgctxt "Label: Hint for dash search line edit"
199367msgid "Search"
200−msgstr ""
368+msgstr "Circà"
201369
202−#: qml/Dash/PageHeaderExtraPanel.qml:55
370+#: qml/Dash/PageHeaderExtraPanel.qml:56
203371msgid "Recent Searches"
204−msgstr ""
372+msgstr "Ricerche recente"
205373
206−#: qml/Dash/PageHeaderExtraPanel.qml:66
374+#: qml/Dash/PageHeaderExtraPanel.qml:67
207375msgid "Clear All"
208−msgstr ""
376+msgstr "Squassà tuttu"
209377
210378#: qml/Dash/Previews/PreviewActionCombo.qml:35
211379msgid "More..."
212−msgstr ""
380+msgstr "Di più..."
213381
214382#: qml/Dash/Previews/PreviewActionCombo.qml:35
215383msgid "Less..."
216−msgstr ""
384+msgstr "Menu..."
217385
218386#: qml/Dash/Previews/PreviewCommentInput.qml:68
219−#: qml/Dash/Previews/PreviewRatingInput.qml:174
387+#: qml/Dash/Previews/PreviewRatingInput.qml:175
220388msgid "Send"
221−msgstr ""
389+msgstr "Mandà"
222390
223−#: qml/Dash/Previews/PreviewRatingInput.qml:84
391+#: qml/Dash/Previews/PreviewRatingInput.qml:82
224392msgid "Rate this"
225−msgstr ""
393+msgstr "Ghjudicà questu"
226394
227−#: qml/Dash/Previews/PreviewRatingInput.qml:129
395+#: qml/Dash/Previews/PreviewRatingInput.qml:157
228396msgid "Add a review"
229−msgstr ""
397+msgstr "Aghjustà una recensione"
230398
231399#: qml/Dash/Previews/PreviewSharing.qml:66
232400msgid "Preview Share Item"
233−msgstr ""
401+msgstr "Anteprima elementi da sparte"
234402
235403#: qml/Dash/PullToRefreshScopeStyle.qml:55
236404msgid "Pull to refresh…"
237−msgstr ""
405+msgstr "Tirà per rinnuvà..."
238406
239407#: qml/Dash/PullToRefreshScopeStyle.qml:60
240408msgid "Release to refresh…"
241−msgstr ""
409+msgstr "Lascià andà per rinnuvà..."
242410
243411#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
244412msgid "Enable location data"
245−msgstr ""
413+msgstr "Abilità i dati nant'à u locu"
246414
247−#: qml/Dash/ScopesList.qml:67
415+#: qml/Dash/ScopesList.qml:55
248416msgid "Manage"
249−msgstr ""
417+msgstr "Gestì"
250418
251−#: qml/Dash/ScopesList.qml:113
419+#: qml/Dash/ScopesList.qml:101
252420msgid "Home"
253−msgstr ""
421+msgstr "Accolta"
254422
255−#: qml/Dash/ScopesList.qml:114
423+#: qml/Dash/ScopesList.qml:102
256424msgid "Also installed"
257−msgstr ""
425+msgstr "Anu dinù installatu..."
258426
259427#: qml/DisabledScreenNotice.qml:109
260428msgid ""
261429"Your device is now connected to an external display. Use this screen as a "
262430"touch pad to interact with the pointer."
263431msgstr ""
432+"U vostru dispusitivu avà hè cunnessu à unu screnu esternu. Usà u screnu di "
433+"ssu dispusitivu cum'è un tappettu tattile per guvernà u puntatore."
264434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:119
266436msgid "Unlock"
267−msgstr ""
437+msgstr "Sbluccà"
268438
269−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/LoginList.qml:259
270440msgid "Retry"
271−msgstr ""
441+msgstr "Turnà à pruvà"
272442
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
443+#: qml/Greeter/LoginList.qml:260
444+msgid "Log In"
275445msgstr ""
276446
277447#: qml/Greeter/NarrowView.qml:54
278448msgid "Sorry, incorrect passphrase."
279−msgstr ""
449+msgstr "Spiacenti, frasa d'ordine errata"
280450
281451#: qml/Greeter/NarrowView.qml:55
282452msgid "Sorry, incorrect passcode."
283−msgstr ""
453+msgstr "Spiacenti, codice d'accessu erratu"
284454
285455#: qml/Greeter/NarrowView.qml:56
286456msgid "This will be your last attempt."
287−msgstr ""
457+msgstr "Questu tentativu serà l'ultimu."
288458
289459#: qml/Greeter/NarrowView.qml:58
290460msgid ""
291461"If passphrase is entered incorrectly, your phone will conduct a factory "
292462"reset and all personal data will be deleted."
293463msgstr ""
464+"Si a frasa d'ordine hè errata, u telefunu serà reinizializatu, è tutti i "
465+"dati persunali serannu perduti."
294466
295467#: qml/Greeter/NarrowView.qml:59
296468msgid ""
297469"If passcode is entered incorrectly, your phone will conduct a factory reset "
298470"and all personal data will be deleted."
299471msgstr ""
472+"Si u codice d'accessu hè erratu, u telefunu serà reinizializatu, è tutti i "
473+"dati persunali serannu perduti."
300474
301475#: qml/Greeter/NarrowView.qml:116
302476#, qt-format
303477msgid "Enter %1"
304−msgstr ""
478+msgstr "Inserì %1"
305479
306480#: qml/Greeter/NarrowView.qml:117
307481msgid "Enter passphrase"
308−msgstr ""
482+msgstr "Inserì a frasa d'ordine"
309483
310484#: qml/Greeter/NarrowView.qml:118
311485msgid "Enter passcode"
312−msgstr ""
486+msgstr "Inserì u codice d'accessu"
313487
314488#: qml/Greeter/NarrowView.qml:119
315489#, qt-format
316490msgid "Sorry, incorrect %1"
317−msgstr ""
491+msgstr "Spiacenti, %1 micca currettu"
318492
319493#: qml/Greeter/NarrowView.qml:120
320494msgid "Sorry, incorrect passphrase"
321−msgstr ""
495+msgstr "Spiacenti, frasa d'ordine micca curretta"
322496
323497#: qml/Greeter/NarrowView.qml:121
324498msgctxt "passphrase"
325499msgid "Please re-enter"
326−msgstr ""
500+msgstr "Ripete l'inserimentu"
327501
328502#: qml/Greeter/NarrowView.qml:122
329503msgid "Sorry, incorrect passcode"
330−msgstr ""
504+msgstr "Spiacenti, codice d'accessu micca currettu"
331505
332506#: qml/Notifications/NotificationMenuItemFactory.qml:124
333507msgid "Show password"
334−msgstr ""
508+msgstr "Mustrà a parolla d'ordine"
335509
336510#: qml/Panel/ActiveCallHint.qml:79
337511msgid "Tap to return to call..."
338−msgstr ""
512+msgstr "Tuccà per riturnà à a chjamata..."
339513
340514#: qml/Panel/ActiveCallHint.qml:92
341515msgid "Conference"
342−msgstr ""
516+msgstr "Cunferenza"
343517
344518#: qml/Panel/Indicators/MenuItemFactory.qml:762
345519msgid "Nothing is playing"
346−msgstr ""
520+msgstr "Nunda in ripruduzione..."
347521
348522#: qml/Panel/Indicators/MenuItemFactory.qml:891
349523#, qt-format
350524msgid "%1 hour"
351525msgid_plural "%1 hours"
352−msgstr[0] ""
353−msgstr[1] ""
526+msgstr[0] "%1 ora"
527+msgstr[1] "%1 ore"
354528
355529#: qml/Panel/Indicators/MenuItemFactory.qml:895
356530#, qt-format
357531msgid "%1 minute"
358532msgid_plural "%1 minutes"
359−msgstr[0] ""
360−msgstr[1] ""
533+msgstr[0] "%1 minutu"
534+msgstr[1] "%1 minuti"
361535
362536#: qml/Panel/Indicators/MenuItemFactory.qml:900
363537#, qt-format
364538msgid "%1 second"
365539msgid_plural "%1 seconds"
366−msgstr[0] ""
367−msgstr[1] ""
540+msgstr[0] "%1 seconda"
541+msgstr[1] "%1 seconde"
368542
369543#: qml/Panel/Indicators/MenuItemFactory.qml:903
370544msgid "0 seconds"
371−msgstr ""
545+msgstr "0 seconde"
372546
373547#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374548#: qml/Panel/Indicators/MenuItemFactory.qml:905
375549#, qt-format
376550msgid "%1 remaining"
377−msgstr ""
551+msgstr "%1 rimanente"
378552
379553#: qml/Panel/Indicators/MenuItemFactory.qml:911
380554msgid "In queue…"
381−msgstr ""
555+msgstr "In coda..."
382556
383557#: qml/Panel/Indicators/MenuItemFactory.qml:915
384558msgid "Downloading"
385−msgstr ""
559+msgstr "Scaricamentu..."
386560
387561#: qml/Panel/Indicators/MenuItemFactory.qml:917
388562msgid "Paused, tap to resume"
389−msgstr ""
563+msgstr "In sosta, tuccà pè riprende"
390564
391565#: qml/Panel/Indicators/MenuItemFactory.qml:919
392566msgid "Canceled"
393−msgstr ""
567+msgstr "Annullatu"
394568
395569#: qml/Panel/Indicators/MenuItemFactory.qml:921
396570msgid "Finished"
397−msgstr ""
571+msgstr "Cumpletu"
398572
399573#: qml/Panel/Indicators/MenuItemFactory.qml:923
400574msgid "Failed, tap to retry"
401−msgstr ""
575+msgstr "Fallatu, tocca per turnà à pruvà"
402576
403−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
578+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
405579msgctxt "Button: Send a reply message"
406580msgid "Send"
407−msgstr ""
581+msgstr "Mandà"
408582
409−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
583+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
410584msgctxt "Label: Hint in message indicator line edit"
411585msgid "Reply"
412−msgstr ""
586+msgstr "Risponde"
413587
414−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
588+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
415589msgctxt "Button: Call back on phone"
416590msgid "Call back"
417−msgstr ""
591+msgstr "Richjamà"
418592
419593#: qml/Stages/SideStage.qml:76
420594msgid "Drag using 3 fingers any application from one window to the other"
421595msgstr ""
596+"Trascinà cù 3 dite qualichissia applicazione da una finestra à un'antra"
422597
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
598+#: qml/Tutorial/TutorialLeftLong.qml:49
444599msgid "Long swipe from the left edge to open the Today scope"
445−msgstr ""
600+msgstr "Scorre longu da mancina versu diritta per aprì u pannellu Oghje"
446601
447602#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
603+msgid "Short swipe from the left edge to open the launcher"
449604msgstr ""
450605
451606#: qml/Tutorial/TutorialRight.qml:55
@@ -453,158 +608,158 @@ msgid "Push your mouse against the right edge to view your open apps"
453608msgstr ""
454609
455610#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
611+msgid "Swipe from the right edge to view your open apps"
457612msgstr ""
458613
459614#: 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"
615+msgid "Swipe from the top edge to access notifications and quick settings"
465616msgstr ""
466617
467618#: qml/Wizard/Page.qml:54
468619msgctxt "Button: Go back one page in the Wizard"
469620msgid "Back"
470−msgstr ""
621+msgstr "Riturnà"
471622
472623#: qml/Wizard/Pages/10-welcome.qml:27
473624msgid "Language"
474−msgstr ""
625+msgstr "Lingua"
475626
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
627+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
628+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478629#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479630#: qml/Wizard/Pages/75-report-check.qml:84
480631#: qml/Wizard/Pages/passcode-desktop.qml:124
481632#: qml/Wizard/Pages/password-set.qml:141
482633msgid "Next"
483−msgstr ""
634+msgstr "Prossimu"
484635
485636#: qml/Wizard/Pages/30-wifi.qml:29
486637msgid "Connect to Wi‑Fi"
487−msgstr ""
638+msgstr "Cunnettesi à u Wi-Fi"
488639
489640#: qml/Wizard/Pages/30-wifi.qml:130
490641msgid "Connected"
491−msgstr ""
642+msgstr "Cunnessu"
492643
493644#: qml/Wizard/Pages/30-wifi.qml:163
494645msgid "Available Wi-Fi networks"
495−msgstr ""
646+msgstr "Rete Wi-Fi dispunibili"
496647
497648#: qml/Wizard/Pages/30-wifi.qml:164
498649msgid "No available Wi-Fi networks"
499−msgstr ""
650+msgstr "Nisuna reta Wi-Fi hè dispunibile"
500651
501652#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502653#: qml/Wizard/Pages/sim.qml:101
503654msgid "Skip"
504−msgstr ""
655+msgstr "Ignurà"
505656
506657#: qml/Wizard/Pages/40-location.qml:27
507658msgid "Location Services"
508−msgstr ""
659+msgstr "Servizi di lucalizazione"
509660
510661#: qml/Wizard/Pages/40-location.qml:83
511662msgid ""
512663"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513664"(recommended)"
514665msgstr ""
666+"Usà di manera anonima u GPS, i punti d'accessu Wi-Fi, e reti mobili, per "
667+"stabilisce à pusizione (segeritu)"
515668
516669#: qml/Wizard/Pages/40-location.qml:105
517670#, qt-format
518671msgid "By selecting this option you agree to the Nokia HERE %1."
519−msgstr ""
672+msgstr "Selezziunendu issa ozzione s'accettanu i %1 di Nokia HERE."
520673
521674#: qml/Wizard/Pages/40-location.qml:106
522675msgctxt "part of: Nokia HERE terms and conditions"
523676msgid "terms and conditions"
524−msgstr ""
677+msgstr "termini è cundizioni"
525678
526679#: qml/Wizard/Pages/40-location.qml:160
527680msgid "GPS only"
528−msgstr ""
681+msgstr "Sulamente GPS"
529682
530683#: qml/Wizard/Pages/40-location.qml:214
531684msgid "Don't use my location"
532−msgstr ""
685+msgstr "Miccà usà u mo locu"
533686
534687#: qml/Wizard/Pages/40-location.qml:260
535688msgid "You can change it later in System Settings."
536−msgstr ""
689+msgstr "A pudite cambià successivamente ind'i Parametri di Sistema"
537690
538691#: qml/Wizard/Pages/50-timezone.qml:29
539692msgid "Time Zone"
540−msgstr ""
693+msgstr "Fusu orariu"
541694
542−#: qml/Wizard/Pages/50-timezone.qml:178
695+#: qml/Wizard/Pages/50-timezone.qml:181
543696msgid "Enter your city"
544−msgstr ""
697+msgstr "Inserì a vostra cità"
545698
546699#: qml/Wizard/Pages/60-account.qml:24
547700msgid "Personalize Your Device"
548−msgstr ""
701+msgstr "Persunalizà u vostru dispusitivu"
549702
550703#: qml/Wizard/Pages/60-account.qml:48
551704msgid "Preferred Name"
552−msgstr ""
705+msgstr "Nome preferitu"
553706
554707#: qml/Wizard/Pages/70-passwd-type.qml:39
555708msgid "Lock Screen"
556−msgstr ""
709+msgstr "Bluccà u screnu"
557710
558711#: qml/Wizard/Pages/70-passwd-type.qml:101
559712msgctxt "Label: Type of security method"
560713msgid "Create new password"
561−msgstr ""
714+msgstr "Creà una nova parolla d'ordine"
562715
563716#: qml/Wizard/Pages/70-passwd-type.qml:103
564717msgctxt "Label: Type of security method"
565718msgid "Create passcode (numbers only)"
566−msgstr ""
719+msgstr "Creà un codice d'accessu (sulamente numeri)"
567720
568721#: qml/Wizard/Pages/70-passwd-type.qml:105
569722msgctxt "Label: Type of security method"
570723msgid "No lock code"
571−msgstr ""
724+msgstr "Nisun codice di bloccu"
572725
573726#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574727msgid "Privacy Policy"
575−msgstr ""
728+msgstr "Pulitica di Riservatezza"
576729
577730#: qml/Wizard/Pages/75-report-check.qml:26
578731msgid "Help Us Improve"
579−msgstr ""
732+msgstr "Aiutaci à migliurà"
580733
581734#: qml/Wizard/Pages/75-report-check.qml:59
582735msgid "Improve system performance by sending us crashes and error reports."
583736msgstr ""
737+"Migliurà l'efficienza di u sistema mandenduci nutificazioni d'errori è "
738+"blocchi impurtanti."
584739
585740#: qml/Wizard/Pages/75-report-check.qml:60
586741msgid "Privacy policy"
587−msgstr ""
742+msgstr "Pulitica di Riservatezza"
588743
589744#: qml/Wizard/Pages/80-finished.qml:89
590745msgid "Welcome to Ubuntu"
591−msgstr ""
746+msgstr "Benvenuti in Ubuntu"
592747
593748#: qml/Wizard/Pages/80-finished.qml:104
594749msgid "You are ready to use your device now"
595−msgstr ""
750+msgstr "Avà site pronti à usà u vostru dispusitivu"
596751
597752#: qml/Wizard/Pages/80-finished.qml:124
598753msgid "Get Started"
599−msgstr ""
754+msgstr "Primi passi"
600755
601756#: qml/Wizard/Pages/here-terms.qml:25
602757msgid "Terms & Conditions"
603−msgstr ""
758+msgstr "Termini & Cundizioni"
604759
605760#: qml/Wizard/Pages/here-terms.qml:69
606761msgid "Your device uses positioning technologies provided by HERE."
607−msgstr ""
762+msgstr "U dispusitivu utliza tecnulugie di pusiziunamentu furnite da HERE."
608763
609764#: qml/Wizard/Pages/here-terms.qml:81
610765msgid ""
@@ -612,125 +767,172 @@ msgid ""
612767"collects information about nearby cell towers and Wi-Fi hotspots around your "
613768"current location whenever your position is being found."
614769msgstr ""
770+"Per furnì servizii di pusiziunamentu è migliuranne a qualità, ogni volta chì "
771+"a pusizione hè truvata, HERE culleziona e infurmazione nant'à i punti "
772+"d'accessu Wi-Fi è i repetitori di telefunia mobile ind'u circondu."
615773
616774#: qml/Wizard/Pages/here-terms.qml:93
617775msgid ""
618776"The information collected is used to analyze the service and to improve the "
619777"use of service, but not to identify you personally."
620778msgstr ""
779+"E infurmazione raccolte seranu utilizate per analizà u servizi è "
780+"migliurallu, micca per idintificà l'utilizatore."
621781
622782#: qml/Wizard/Pages/here-terms.qml:106
623783#, qt-format
624784msgid "By continuing, you agree to the HERE platform %1 and %2."
625−msgstr ""
785+msgstr "Cuntinuendu, s'accettanu i %1 e la %2 di a piattaforma HERE."
626786
627787#: qml/Wizard/Pages/here-terms.qml:107
628788msgid "Service Terms"
629−msgstr ""
789+msgstr "Termini di u serviziu"
630790
631791#: qml/Wizard/Pages/passcode-confirm.qml:43
632792#: qml/Wizard/Pages/passcode-desktop.qml:80
633793msgid "Confirm passcode"
634−msgstr ""
794+msgstr "Cunfirmà u codice d'accessu"
635795
636796#: qml/Wizard/Pages/passcode-confirm.qml:45
637797msgid "Incorrect passcode."
638−msgstr ""
798+msgstr "Codice d'accessu micca currettu"
639799
640800#: qml/Wizard/Pages/passcode-confirm.qml:45
641801msgctxt "Enter the passcode again"
642802msgid "Please re-enter."
643−msgstr ""
803+msgstr "Ripete l'inserimentu."
644804
645805#: qml/Wizard/Pages/passcode-desktop.qml:30
646806msgid "Lock Screen Passcode"
647−msgstr ""
807+msgstr "Codice bloccu screnu"
648808
649809#: qml/Wizard/Pages/passcode-desktop.qml:56
650810msgid "Enter 4 numbers to setup your passcode"
651−msgstr ""
811+msgstr "Inserì 4 numeri per creà u vostru codice d'accessu"
652812
653813#: qml/Wizard/Pages/passcode-desktop.qml:65
654814#: qml/Wizard/Pages/passcode-set.qml:54
655815msgid "Choose passcode"
656−msgstr ""
816+msgstr "Sceglie u codice d'accessu"
657817
658818#: qml/Wizard/Pages/passcode-desktop.qml:105
659819msgid "Passcode too short"
660−msgstr ""
820+msgstr "Codice d'accessu troppu cortu"
661821
662822#: qml/Wizard/Pages/passcode-desktop.qml:107
663823msgid "Passcodes match"
664−msgstr ""
824+msgstr "I codici currispondenu."
665825
666826#: qml/Wizard/Pages/passcode-desktop.qml:109
667827msgid "Passcodes do not match"
668−msgstr ""
828+msgstr "I codici ùn currispondenu micca."
669829
670830#: qml/Wizard/Pages/passcode-set.qml:62
671831msgid "Passcode must be 4 characters long"
672−msgstr ""
832+msgstr "U codice d'accessu hà da esse longu almenu 4 caratteri"
673833
674834#: qml/Wizard/Pages/password-set.qml:30
675835msgid "Lock Screen Password"
676−msgstr ""
836+msgstr "Parolla d'ordine per bloccu screnu"
677837
678838#: qml/Wizard/Pages/password-set.qml:61
679839msgid "Enter at least 8 characters"
680−msgstr ""
840+msgstr "Inserì almenu 8 caratteri"
681841
682842#: qml/Wizard/Pages/password-set.qml:73
683843msgid "Choose password"
684−msgstr ""
844+msgstr "Sceglie a parolla d'ordine"
685845
686846#: qml/Wizard/Pages/password-set.qml:103
687847msgid "Confirm password"
688−msgstr ""
848+msgstr "Cunfirmà parolla d'ordine"
689849
690850#: qml/Wizard/Pages/sim.qml:27
691851msgid "No SIM card installed"
692−msgstr ""
852+msgstr "Nisuna carta SIM installata"
693853
694854#: qml/Wizard/Pages/sim.qml:54
695855msgid "SIM card added"
696−msgstr ""
856+msgstr "Carta SIM aghjustata"
697857
698858#: qml/Wizard/Pages/sim.qml:55
699859msgid "You must restart the device to access the mobile network."
700−msgstr ""
860+msgstr "Duvite ri-avvià u dispusitivu per accede à a reta mobile."
701861
702862#: qml/Wizard/Pages/sim.qml:59
703863msgid "Restart"
704−msgstr ""
864+msgstr "Turnà ad avvià"
705865
706866#: qml/Wizard/Pages/sim.qml:78
707867msgid "You won’t be able to make calls or use text messaging without a SIM."
708868msgstr ""
869+"Senza una carta SIM ùn hè micca pussibile di chjamà o mandà messaggi SMS."
709870
710871#: qml/Wizard/Pages/sim.qml:90
711872msgid "To proceed with no SIM tap Skip."
712−msgstr ""
873+msgstr "Per prucede senza una carta SIM tuccà Saltà"
713874
714875#: qml/Wizard/PasswordMeter.qml:87
715876msgid "Passwords match"
716−msgstr ""
877+msgstr "E parolle d'ordine sò l'istesse"
717878
718879#: qml/Wizard/PasswordMeter.qml:89
719880msgid "Passwords do not match"
720−msgstr ""
881+msgstr "E parolle d'ordine ùn coincidunu micca"
721882
722883#: qml/Wizard/PasswordMeter.qml:93
723884msgid "Strong password"
724−msgstr ""
885+msgstr "Parolla d'ordine forte"
725886
726887#: qml/Wizard/PasswordMeter.qml:95
727888msgid "Fair password"
728−msgstr ""
889+msgstr "Parolla d'ordine media"
729890
730891#: qml/Wizard/PasswordMeter.qml:97
731892msgid "Weak password"
732−msgstr ""
893+msgstr "Parolla d'ordine debule"
733894
734895#: qml/Wizard/PasswordMeter.qml:99
735896msgid "Very weak password"
736−msgstr ""
897+msgstr "Parolla d'ordine moltu debule"
898+
899+#~ msgid "See all"
900+#~ msgstr "Vede tutti"
901+
902+#~ msgid "Tap to unlock"
903+#~ msgstr "Tuccà per sbluccà"
904+
905+#~ msgid "See less"
906+#~ msgstr "Vede menu"
907+
908+#~ msgid "Swipe from the left edge to open the launcher"
909+#~ msgstr "Scorre da mancina versu diritta per aprì u launcher"
910+
911+#~ msgid "Swipe up to add a contact"
912+#~ msgstr "Scorre versu l'altu per aghjustà un cuntattu"
913+
914+#~ msgid "Swipe up for recent calls"
915+#~ msgstr "Scorre versu l'altu pè e chjamate recenti"
916+
917+#~ msgid "Swipe up for favorite calculations"
918+#~ msgstr "Scorre versu l'altu pè mustrà i calculi favuriti"
919+
920+#~ msgid "Swipe up to manage the app"
921+#~ msgstr "Scorre versu l'altu per gestì l'app"
922+
923+#~ msgid "Swipe up to create a message"
924+#~ msgstr "Scorre versu l'altu per creà un messaggiu"
925+
926+#~ msgid "Short or long swipe from the right edge to view your open apps"
927+#~ msgstr ""
928+#~ "Scorre cortu o longu da diritta versu mancina per vede e applicazioni aperte"
929+
930+#~ msgid "Swipe from the top right edge to open the notification bar"
931+#~ msgstr "Scorre da l'altu à diritta per aprì a barra di e nutificazione"
932+
933+#~ msgid "Swipe from the top edge to open the notification bar"
934+#~ msgstr "Scorre da l'altu per aprì a barra di e nutificazione"
935+
936+#~ msgid "Hover your mouse on the right edge to view your open apps"
937+#~ msgstr ""
938+#~ "Passà u puntatore di u topu nant'à u bordu destru per vede e app aperte"
po/cs.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,24 +15,24 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -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
81−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: 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,16 +113,176 @@ 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/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+
126286#: qml/Components/Lockscreen.qml:231
127287msgid "Return to Call"
128288msgstr "Vrátit se k hovoru"
@@ -161,26 +321,26 @@ msgstr ""
161321msgid "Close all"
162322msgstr ""
163323
164−#: qml/Dash/DashPageHeader.qml:337
324+#: qml/Dash/DashPageHeader.qml:333
165325msgctxt "Button: Open the Ubuntu Store"
166326msgid "Store"
167327msgstr "Obchod"
168328
169−#: qml/Dash/DashPageHeader.qml:344
329+#: qml/Dash/DashPageHeader.qml:340
170330msgctxt "Button: Start a search in the current dash scope"
171331msgid "Search"
172332msgstr "Hledat"
173333
174−#: qml/Dash/DashPageHeader.qml:354
334+#: qml/Dash/DashPageHeader.qml:350
175335msgctxt "Button: Show the current dash scope settings"
176336msgid "Settings"
177337msgstr "Nastavení"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Remove from Favorites"
181341msgstr "Odstranit z oblíbených"
182342
183−#: qml/Dash/DashPageHeader.qml:361
343+#: qml/Dash/DashPageHeader.qml:357
184344msgid "Add to Favorites"
185345msgstr "Přidat do oblíbených"
186346
@@ -192,24 +352,24 @@ msgstr ""
192352msgid "Reset"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
355+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196356msgid "Show less"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:579
359+#: qml/Dash/GenericScopeView.qml:580
200360msgid "Show all"
201361msgstr ""
202362
203−#: qml/Dash/GenericScopeView.qml:636
363+#: qml/Dash/GenericScopeView.qml:637
204364msgctxt "Label: Hint for dash search line edit"
205365msgid "Search"
206366msgstr "Hledat"
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:55
368+#: qml/Dash/PageHeaderExtraPanel.qml:56
209369msgid "Recent Searches"
210370msgstr ""
211371
212−#: qml/Dash/PageHeaderExtraPanel.qml:66
372+#: qml/Dash/PageHeaderExtraPanel.qml:67
213373msgid "Clear All"
214374msgstr ""
215375
@@ -222,15 +382,15 @@ msgid "Less..."
222382msgstr "Méně..."
223383
224384#: qml/Dash/Previews/PreviewCommentInput.qml:68
225−#: qml/Dash/Previews/PreviewRatingInput.qml:174
385+#: qml/Dash/Previews/PreviewRatingInput.qml:175
226386msgid "Send"
227387msgstr "Odeslat"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:84
389+#: qml/Dash/Previews/PreviewRatingInput.qml:82
230390msgid "Rate this"
231391msgstr "Ohodnoťte to"
232392
233−#: qml/Dash/Previews/PreviewRatingInput.qml:129
393+#: qml/Dash/Previews/PreviewRatingInput.qml:157
234394msgid "Add a review"
235395msgstr "Přidat recenzi"
236396
@@ -250,15 +410,15 @@ msgstr "Pusťte pro obnovení..."
250410msgid "Enable location data"
251411msgstr "Povolit údaje umístění"
252412
253−#: qml/Dash/ScopesList.qml:67
413+#: qml/Dash/ScopesList.qml:55
254414msgid "Manage"
255415msgstr "Spravovat"
256416
257−#: qml/Dash/ScopesList.qml:113
417+#: qml/Dash/ScopesList.qml:101
258418msgid "Home"
259419msgstr "Domů"
260420
261−#: qml/Dash/ScopesList.qml:114
421+#: qml/Dash/ScopesList.qml:102
262422msgid "Also installed"
263423msgstr "Také nainstalováno"
264424
@@ -268,17 +428,17 @@ msgid ""
268428"touch pad to interact with the pointer."
269429msgstr ""
270430
271−#: qml/Greeter/CoverPage.qml:118
431+#: qml/Greeter/CoverPage.qml:119
272432msgid "Unlock"
273433msgstr "Odemknout"
274434
275−#: qml/Greeter/LoginList.qml:239
435+#: qml/Greeter/LoginList.qml:259
276436msgid "Retry"
277437msgstr "Znovu"
278438
279−#: qml/Greeter/LoginList.qml:240
280−msgid "Tap to unlock"
281−msgstr "Klepnout pro odemčení"
439+#: qml/Greeter/LoginList.qml:260
440+msgid "Log In"
441+msgstr ""
282442
283443#: qml/Greeter/NarrowView.qml:54
284444msgid "Sorry, incorrect passphrase."
@@ -413,18 +573,18 @@ msgstr "Dokončeno"
413573msgid "Failed, tap to retry"
414574msgstr "Nezdařilo se, opakujte klepnutím"
415575
416−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
576+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
418578msgctxt "Button: Send a reply message"
419579msgid "Send"
420580msgstr ""
421581
422−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
582+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
423583msgctxt "Label: Hint in message indicator line edit"
424584msgid "Reply"
425585msgstr "Odpovědět"
426586
427−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
587+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
428588msgctxt "Button: Call back on phone"
429589msgid "Call back"
430590msgstr ""
@@ -433,32 +593,12 @@ msgstr ""
433593msgid "Drag using 3 fingers any application from one window to the other"
434594msgstr ""
435595
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
596+#: qml/Tutorial/TutorialLeftLong.qml:49
457597msgid "Long swipe from the left edge to open the Today scope"
458598msgstr ""
459599
460600#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
601+msgid "Short swipe from the left edge to open the launcher"
462602msgstr ""
463603
464604#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +606,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466606msgstr ""
467607
468608#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
609+msgid "Swipe from the right edge to view your open apps"
470610msgstr ""
471611
472612#: 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"
613+msgid "Swipe from the top edge to access notifications and quick settings"
478614msgstr ""
479615
480616#: qml/Wizard/Page.qml:54
@@ -486,8 +622,8 @@ msgstr "Zpět"
486622msgid "Language"
487623msgstr ""
488624
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
625+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
626+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491627#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492628#: qml/Wizard/Pages/75-report-check.qml:84
493629#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -552,7 +688,7 @@ msgstr ""
552688msgid "Time Zone"
553689msgstr ""
554690
555−#: qml/Wizard/Pages/50-timezone.qml:178
691+#: qml/Wizard/Pages/50-timezone.qml:181
556692msgid "Enter your city"
557693msgstr ""
558694
@@ -820,6 +956,9 @@ msgstr ""
820956#~ msgid "Shut down"
821957#~ msgstr "Vypnout"
822958
959+#~ msgid "Tap to unlock"
960+#~ msgstr "Klepnout pro odemčení"
961+
823962#~ msgid "Please re-enter"
824963#~ msgstr "Vložte znovu"
825964
po/cy.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+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,23 +16,23 @@ 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-05-25 06:09+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-06-19 05:55+0000\n"
20+"X-Generator: Launchpad (build 18097)\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
@@ -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
82−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82+#: 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,16 +114,176 @@ 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/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+
127287#: qml/Components/Lockscreen.qml:231
128288msgid "Return to Call"
129289msgstr "Nôl i'r alwad"
@@ -162,26 +322,26 @@ msgstr ""
162322msgid "Close all"
163323msgstr ""
164324
165−#: qml/Dash/DashPageHeader.qml:337
325+#: qml/Dash/DashPageHeader.qml:333
166326msgctxt "Button: Open the Ubuntu Store"
167327msgid "Store"
168328msgstr "Marchnad"
169329
170−#: qml/Dash/DashPageHeader.qml:344
330+#: qml/Dash/DashPageHeader.qml:340
171331msgctxt "Button: Start a search in the current dash scope"
172332msgid "Search"
173333msgstr "Chwilio"
174334
175−#: qml/Dash/DashPageHeader.qml:354
335+#: qml/Dash/DashPageHeader.qml:350
176336msgctxt "Button: Show the current dash scope settings"
177337msgid "Settings"
178338msgstr "Gosodiadau"
179339
180−#: qml/Dash/DashPageHeader.qml:361
340+#: qml/Dash/DashPageHeader.qml:357
181341msgid "Remove from Favorites"
182342msgstr "Tynnu o Ffefrynnau"
183343
184−#: qml/Dash/DashPageHeader.qml:361
344+#: qml/Dash/DashPageHeader.qml:357
185345msgid "Add to Favorites"
186346msgstr "Ychwanegu at Ffefrynnau"
187347
@@ -193,24 +353,24 @@ msgstr ""
193353msgid "Reset"
194354msgstr ""
195355
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
356+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197357msgid "Show less"
198358msgstr ""
199359
200−#: qml/Dash/GenericScopeView.qml:579
360+#: qml/Dash/GenericScopeView.qml:580
201361msgid "Show all"
202362msgstr ""
203363
204−#: qml/Dash/GenericScopeView.qml:636
364+#: qml/Dash/GenericScopeView.qml:637
205365msgctxt "Label: Hint for dash search line edit"
206366msgid "Search"
207367msgstr "Chwilio"
208368
209−#: qml/Dash/PageHeaderExtraPanel.qml:55
369+#: qml/Dash/PageHeaderExtraPanel.qml:56
210370msgid "Recent Searches"
211371msgstr ""
212372
213−#: qml/Dash/PageHeaderExtraPanel.qml:66
373+#: qml/Dash/PageHeaderExtraPanel.qml:67
214374msgid "Clear All"
215375msgstr ""
216376
@@ -223,15 +383,15 @@ msgid "Less..."
223383msgstr "Llai..."
224384
225385#: qml/Dash/Previews/PreviewCommentInput.qml:68
226−#: qml/Dash/Previews/PreviewRatingInput.qml:174
386+#: qml/Dash/Previews/PreviewRatingInput.qml:175
227387msgid "Send"
228388msgstr "Anfon"
229389
230−#: qml/Dash/Previews/PreviewRatingInput.qml:84
390+#: qml/Dash/Previews/PreviewRatingInput.qml:82
231391msgid "Rate this"
232392msgstr "Graddio hwn"
233393
234−#: qml/Dash/Previews/PreviewRatingInput.qml:129
394+#: qml/Dash/Previews/PreviewRatingInput.qml:157
235395msgid "Add a review"
236396msgstr "Ychwanegu adolygiad"
237397
@@ -251,15 +411,15 @@ msgstr "Rhyddhewch i adnewyddu..."
251411msgid "Enable location data"
252412msgstr "Galluogi data lleoliad"
253413
254−#: qml/Dash/ScopesList.qml:67
414+#: qml/Dash/ScopesList.qml:55
255415msgid "Manage"
256416msgstr "Rheoli"
257417
258−#: qml/Dash/ScopesList.qml:113
418+#: qml/Dash/ScopesList.qml:101
259419msgid "Home"
260420msgstr "Cartref"
261421
262−#: qml/Dash/ScopesList.qml:114
422+#: qml/Dash/ScopesList.qml:102
263423msgid "Also installed"
264424msgstr "Hefyd wedi gosod"
265425
@@ -269,17 +429,17 @@ msgid ""
269429"touch pad to interact with the pointer."
270430msgstr ""
271431
272−#: qml/Greeter/CoverPage.qml:118
432+#: qml/Greeter/CoverPage.qml:119
273433msgid "Unlock"
274434msgstr "Datgloi"
275435
276−#: qml/Greeter/LoginList.qml:239
436+#: qml/Greeter/LoginList.qml:259
277437msgid "Retry"
278438msgstr "Ailgynnig"
279439
280−#: qml/Greeter/LoginList.qml:240
281−msgid "Tap to unlock"
282−msgstr "Tapiwch i ddatgloi"
440+#: qml/Greeter/LoginList.qml:260
441+msgid "Log In"
442+msgstr ""
283443
284444#: qml/Greeter/NarrowView.qml:54
285445msgid "Sorry, incorrect passphrase."
@@ -417,18 +577,18 @@ msgstr "Wedi gorffen"
417577msgid "Failed, tap to retry"
418578msgstr "Methwyd, tapiwch i geisio eto"
419579
420−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
421−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
580+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
581+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
422582msgctxt "Button: Send a reply message"
423583msgid "Send"
424584msgstr ""
425585
426−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
586+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
427587msgctxt "Label: Hint in message indicator line edit"
428588msgid "Reply"
429589msgstr "Ateb"
430590
431−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
591+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
432592msgctxt "Button: Call back on phone"
433593msgid "Call back"
434594msgstr ""
@@ -437,32 +597,12 @@ msgstr ""
437597msgid "Drag using 3 fingers any application from one window to the other"
438598msgstr ""
439599
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
600+#: qml/Tutorial/TutorialLeftLong.qml:49
461601msgid "Long swipe from the left edge to open the Today scope"
462602msgstr ""
463603
464604#: qml/Tutorial/TutorialLeft.qml:47
465−msgid "Swipe from the left edge to open the launcher"
605+msgid "Short swipe from the left edge to open the launcher"
466606msgstr ""
467607
468608#: qml/Tutorial/TutorialRight.qml:55
@@ -470,15 +610,11 @@ msgid "Push your mouse against the right edge to view your open apps"
470610msgstr ""
471611
472612#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
613+msgid "Swipe from the right edge to view your open apps"
474614msgstr ""
475615
476616#: 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"
617+msgid "Swipe from the top edge to access notifications and quick settings"
482618msgstr ""
483619
484620#: qml/Wizard/Page.qml:54
@@ -490,8 +626,8 @@ msgstr "Nôl"
490626msgid "Language"
491627msgstr ""
492628
493−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
494−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
629+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
630+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
495631#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
496632#: qml/Wizard/Pages/75-report-check.qml:84
497633#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -556,7 +692,7 @@ msgstr ""
556692msgid "Time Zone"
557693msgstr ""
558694
559−#: qml/Wizard/Pages/50-timezone.qml:178
695+#: qml/Wizard/Pages/50-timezone.qml:181
560696msgid "Enter your city"
561697msgstr ""
562698
@@ -803,6 +939,9 @@ msgstr ""
803939#~ msgid "See less"
804940#~ msgstr "Gweld llai"
805941
942+#~ msgid "Tap to unlock"
943+#~ msgstr "Tapiwch i ddatgloi"
944+
806945#~ msgid "This action does different things for different apps"
807946#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
808947
po/da.po+216−77
@@ -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-20 08:44+0000\n"
11+"POT-Creation-Date: 2016-06-17 01:22+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,23 +16,23 @@ 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-05-25 06:08+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
19+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
20+"X-Generator: Launchpad (build 18097)\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
@@ -59,54 +59,54 @@ msgid_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
82−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82+#: 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,16 +114,176 @@ 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/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+
127287#: qml/Components/Lockscreen.qml:231
128288msgid "Return to Call"
129289msgstr "Vend tilbage til opkald"
@@ -162,26 +322,26 @@ msgstr ""
162322msgid "Close all"
163323msgstr ""
164324
165−#: qml/Dash/DashPageHeader.qml:337
325+#: qml/Dash/DashPageHeader.qml:333
166326msgctxt "Button: Open the Ubuntu Store"
167327msgid "Store"
168328msgstr "Butik"
169329
170−#: qml/Dash/DashPageHeader.qml:344
330+#: qml/Dash/DashPageHeader.qml:340
171331msgctxt "Button: Start a search in the current dash scope"
172332msgid "Search"
173333msgstr "Søg"
174334
175−#: qml/Dash/DashPageHeader.qml:354
335+#: qml/Dash/DashPageHeader.qml:350
176336msgctxt "Button: Show the current dash scope settings"
177337msgid "Settings"
178338msgstr "Indstillinger"
179339
180−#: qml/Dash/DashPageHeader.qml:361
340+#: qml/Dash/DashPageHeader.qml:357
181341msgid "Remove from Favorites"
182342msgstr "Fjern fra Favoritter"
183343
184−#: qml/Dash/DashPageHeader.qml:361
344+#: qml/Dash/DashPageHeader.qml:357
185345msgid "Add to Favorites"
186346msgstr "Tilføj til Favoritter"
187347
@@ -193,24 +353,24 @@ msgstr ""
193353msgid "Reset"
194354msgstr ""
195355
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
356+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197357msgid "Show less"
198358msgstr ""
199359
200−#: qml/Dash/GenericScopeView.qml:579
360+#: qml/Dash/GenericScopeView.qml:580
201361msgid "Show all"
202362msgstr ""
203363
204−#: qml/Dash/GenericScopeView.qml:636
364+#: qml/Dash/GenericScopeView.qml:637
205365msgctxt "Label: Hint for dash search line edit"
206366msgid "Search"
207367msgstr "Søg"
208368
209−#: qml/Dash/PageHeaderExtraPanel.qml:55
369+#: qml/Dash/PageHeaderExtraPanel.qml:56
210370msgid "Recent Searches"
211371msgstr ""
212372
213−#: qml/Dash/PageHeaderExtraPanel.qml:66
373+#: qml/Dash/PageHeaderExtraPanel.qml:67
214374msgid "Clear All"
215375msgstr ""
216376
@@ -223,15 +383,15 @@ msgid "Less..."
223383msgstr "Mindre..."
224384
225385#: qml/Dash/Previews/PreviewCommentInput.qml:68
226−#: qml/Dash/Previews/PreviewRatingInput.qml:174
386+#: qml/Dash/Previews/PreviewRatingInput.qml:175
227387msgid "Send"
228388msgstr "Send"
229389
230−#: qml/Dash/Previews/PreviewRatingInput.qml:84
390+#: qml/Dash/Previews/PreviewRatingInput.qml:82
231391msgid "Rate this"
232392msgstr "Bedøm dette"
233393
234−#: qml/Dash/Previews/PreviewRatingInput.qml:129
394+#: qml/Dash/Previews/PreviewRatingInput.qml:157
235395msgid "Add a review"
236396msgstr "Tilføj en anmeldelse"
237397
@@ -251,15 +411,15 @@ msgstr "Giv slip for at genindlæse..."
251411msgid "Enable location data"
252412msgstr "Aktivér lokationsdata"
253413
254−#: qml/Dash/ScopesList.qml:67
414+#: qml/Dash/ScopesList.qml:55
255415msgid "Manage"
256416msgstr "Administrér"
257417
258−#: qml/Dash/ScopesList.qml:113
418+#: qml/Dash/ScopesList.qml:101
259419msgid "Home"
260420msgstr "Hjem"
261421
262−#: qml/Dash/ScopesList.qml:114
422+#: qml/Dash/ScopesList.qml:102
263423msgid "Also installed"
264424msgstr "Også installeret"
265425
@@ -269,17 +429,17 @@ msgid ""
269429"touch pad to interact with the pointer."
270430msgstr ""
271431
272−#: qml/Greeter/CoverPage.qml:118
432+#: qml/Greeter/CoverPage.qml:119
273433msgid "Unlock"
274434msgstr "Lås op"
275435
276−#: qml/Greeter/LoginList.qml:239
436+#: qml/Greeter/LoginList.qml:259
277437msgid "Retry"
278438msgstr "Forsøg igen"
279439
280−#: qml/Greeter/LoginList.qml:240
281−msgid "Tap to unlock"
282−msgstr "Tap for at låse op"
440+#: qml/Greeter/LoginList.qml:260
441+msgid "Log In"
442+msgstr ""
283443
284444#: qml/Greeter/NarrowView.qml:54
285445msgid "Sorry, incorrect passphrase."
@@ -411,18 +571,18 @@ msgstr "Færdig"
411571msgid "Failed, tap to retry"
412572msgstr "Mislykkedes - tryk for at prøve igen"
413573
414−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
415−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
574+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
575+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
416576msgctxt "Button: Send a reply message"
417577msgid "Send"
418578msgstr ""
419579
420−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
580+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
421581msgctxt "Label: Hint in message indicator line edit"
422582msgid "Reply"
423583msgstr "Svar"
424584
425−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
585+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
426586msgctxt "Button: Call back on phone"
427587msgid "Call back"
428588msgstr ""
@@ -431,32 +591,12 @@ msgstr ""
431591msgid "Drag using 3 fingers any application from one window to the other"
432592msgstr ""
433593
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
594+#: qml/Tutorial/TutorialLeftLong.qml:49
455595msgid "Long swipe from the left edge to open the Today scope"
456596msgstr ""
457597
458598#: qml/Tutorial/TutorialLeft.qml:47
459−msgid "Swipe from the left edge to open the launcher"
599+msgid "Short swipe from the left edge to open the launcher"
460600msgstr ""
461601
462602#: qml/Tutorial/TutorialRight.qml:55
@@ -464,15 +604,11 @@ msgid "Push your mouse against the right edge to view your open apps"
464604msgstr ""
465605
466606#: qml/Tutorial/TutorialRight.qml:56
467−msgid "Short or long swipe from the right edge to view your open apps"
607+msgid "Swipe from the right edge to view your open apps"
468608msgstr ""
469609
470610#: 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"
611+msgid "Swipe from the top edge to access notifications and quick settings"
476612msgstr ""
477613
478614#: qml/Wizard/Page.qml:54
@@ -484,8 +620,8 @@ msgstr "Tilbage"
484620msgid "Language"
485621msgstr ""
486622
487−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
488−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
623+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
624+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
489625#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
490626#: qml/Wizard/Pages/75-report-check.qml:84
491627#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -550,7 +686,7 @@ msgstr ""
550686msgid "Time Zone"
551687msgstr ""
552688
553−#: qml/Wizard/Pages/50-timezone.qml:178
689+#: qml/Wizard/Pages/50-timezone.qml:181
554690msgid "Enter your city"
555691msgstr ""
556692
@@ -942,6 +1078,9 @@ msgstr ""
9421078#~ msgid "Reboot"
9431079#~ msgstr "Genstart"
9441080
1081+#~ msgid "Tap to unlock"
1082+#~ msgstr "Tap for at låse op"
1083+
9451084#~ msgid "Roaming"
9461085#~ msgstr "Roaming"
9471086
po/de.po+248−82
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2016-05-10 19:23+0000\n"
1212"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:09+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -58,54 +58,54 @@ msgid_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
81−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: 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,16 +113,176 @@ 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/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+
126286#: qml/Components/Lockscreen.qml:231
127287msgid "Return to Call"
128288msgstr "Zu Anruf zurückkehren"
@@ -163,26 +323,26 @@ msgstr "Jetzt verbinden!"
163323msgid "Close all"
164324msgstr "Alle schließen"
165325
166−#: qml/Dash/DashPageHeader.qml:337
326+#: qml/Dash/DashPageHeader.qml:333
167327msgctxt "Button: Open the Ubuntu Store"
168328msgid "Store"
169329msgstr "Speichern"
170330
171−#: qml/Dash/DashPageHeader.qml:344
331+#: qml/Dash/DashPageHeader.qml:340
172332msgctxt "Button: Start a search in the current dash scope"
173333msgid "Search"
174334msgstr "Suchen"
175335
176−#: qml/Dash/DashPageHeader.qml:354
336+#: qml/Dash/DashPageHeader.qml:350
177337msgctxt "Button: Show the current dash scope settings"
178338msgid "Settings"
179339msgstr "Einstellungen"
180340
181−#: qml/Dash/DashPageHeader.qml:361
341+#: qml/Dash/DashPageHeader.qml:357
182342msgid "Remove from Favorites"
183343msgstr "Aus den Favoriten entfernen"
184344
185−#: qml/Dash/DashPageHeader.qml:361
345+#: qml/Dash/DashPageHeader.qml:357
186346msgid "Add to Favorites"
187347msgstr "Zu Favoriten hinzufügen"
188348
@@ -194,24 +354,24 @@ msgstr "Ergebnisse verfeinern"
194354msgid "Reset"
195355msgstr "Zurücksetzen"
196356
197−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
357+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
198358msgid "Show less"
199359msgstr "Weniger anzeigen"
200360
201−#: qml/Dash/GenericScopeView.qml:579
361+#: qml/Dash/GenericScopeView.qml:580
202362msgid "Show all"
203363msgstr "Alle anzeigen"
204364
205−#: qml/Dash/GenericScopeView.qml:636
365+#: qml/Dash/GenericScopeView.qml:637
206366msgctxt "Label: Hint for dash search line edit"
207367msgid "Search"
208368msgstr "Suchen"
209369
210−#: qml/Dash/PageHeaderExtraPanel.qml:55
370+#: qml/Dash/PageHeaderExtraPanel.qml:56
211371msgid "Recent Searches"
212372msgstr "Letzte Suchanfragen"
213373
214−#: qml/Dash/PageHeaderExtraPanel.qml:66
374+#: qml/Dash/PageHeaderExtraPanel.qml:67
215375msgid "Clear All"
216376msgstr "Alle zurücksetzen"
217377
@@ -224,15 +384,15 @@ msgid "Less..."
224384msgstr "Weniger …"
225385
226386#: qml/Dash/Previews/PreviewCommentInput.qml:68
227−#: qml/Dash/Previews/PreviewRatingInput.qml:174
387+#: qml/Dash/Previews/PreviewRatingInput.qml:175
228388msgid "Send"
229389msgstr "Senden"
230390
231−#: qml/Dash/Previews/PreviewRatingInput.qml:84
391+#: qml/Dash/Previews/PreviewRatingInput.qml:82
232392msgid "Rate this"
233393msgstr "Bewerten"
234394
235−#: qml/Dash/Previews/PreviewRatingInput.qml:129
395+#: qml/Dash/Previews/PreviewRatingInput.qml:157
236396msgid "Add a review"
237397msgstr "Bewertung hinzufügen"
238398
@@ -252,15 +412,15 @@ msgstr "Zum Aktualisieren loslassen …"
252412msgid "Enable location data"
253413msgstr "Standortdaten aktivieren"
254414
255−#: qml/Dash/ScopesList.qml:67
415+#: qml/Dash/ScopesList.qml:55
256416msgid "Manage"
257417msgstr "Verwalten"
258418
259−#: qml/Dash/ScopesList.qml:113
419+#: qml/Dash/ScopesList.qml:101
260420msgid "Home"
261421msgstr "Startseite"
262422
263−#: qml/Dash/ScopesList.qml:114
423+#: qml/Dash/ScopesList.qml:102
264424msgid "Also installed"
265425msgstr "Ebenfalls installiert"
266426
@@ -272,17 +432,17 @@ msgstr ""
272432"Ihr Gerät ist nun mit einem externen Bildschirm verbunden. Verwenden Sie das "
273433"Gerätedisplay als Touchpad, um den Mauszeiger zu steuern."
274434
275−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:119
276436msgid "Unlock"
277437msgstr "Entsperren"
278438
279−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/LoginList.qml:259
280440msgid "Retry"
281441msgstr "Erneut versuchen"
282442
283−#: qml/Greeter/LoginList.qml:240
284−msgid "Tap to unlock"
285−msgstr "Zum Entsperren tippen"
443+#: qml/Greeter/LoginList.qml:260
444+msgid "Log In"
445+msgstr ""
286446
287447#: qml/Greeter/NarrowView.qml:54
288448msgid "Sorry, incorrect passphrase."
@@ -414,18 +574,18 @@ msgstr "Erledigt"
414574msgid "Failed, tap to retry"
415575msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
416576
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
418−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
578+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
419579msgctxt "Button: Send a reply message"
420580msgid "Send"
421581msgstr "Senden"
422582
423−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
583+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
424584msgctxt "Label: Hint in message indicator line edit"
425585msgid "Reply"
426586msgstr "Antworten"
427587
428−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
588+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
429589msgctxt "Button: Call back on phone"
430590msgid "Call back"
431591msgstr "Zurückrufen"
@@ -434,34 +594,14 @@ msgstr "Zurückrufen"
434594msgid "Drag using 3 fingers any application from one window to the other"
435595msgstr "Eine Anwendung mit 3 Fingern von einem Fenster zum anderen ziehen"
436596
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
597+#: qml/Tutorial/TutorialLeftLong.qml:49
458598msgid "Long swipe from the left edge to open the Today scope"
459599msgstr ""
460600"Langgezogene Wischgeste von der linken Kante, um den Heute-Scope zu öffnen"
461601
462602#: 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"
603+msgid "Short swipe from the left edge to open the launcher"
604+msgstr ""
465605
466606#: qml/Tutorial/TutorialRight.qml:55
467607msgid "Push your mouse against the right edge to view your open apps"
@@ -470,20 +610,12 @@ msgstr ""
470610"Anwendungen zu sehen"
471611
472612#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
613+msgid "Swipe from the right edge to view your open apps"
474614msgstr ""
475−"Kurze oder langgezogene Wischgeste von der rechten Kante, um die offenen "
476−"Anwendungen zu sehen"
477615
478616#: qml/Tutorial/TutorialTop.qml:53
479−msgid "Swipe from the top right edge to open the notification bar"
480−msgstr ""
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"
617+msgid "Swipe from the top edge to access notifications and quick settings"
485618msgstr ""
486−"Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
487619
488620#: qml/Wizard/Page.qml:54
489621msgctxt "Button: Go back one page in the Wizard"
@@ -494,8 +626,8 @@ msgstr "Zurück"
494626msgid "Language"
495627msgstr "Sprache"
496628
497−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
498−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
629+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
630+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
499631#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
500632#: qml/Wizard/Pages/75-report-check.qml:84
501633#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -562,7 +694,7 @@ msgstr "Dies kann später in den Systemeinstellungen geändert werden."
562694msgid "Time Zone"
563695msgstr "Zeitzone"
564696
565−#: qml/Wizard/Pages/50-timezone.qml:178
697+#: qml/Wizard/Pages/50-timezone.qml:181
566698msgid "Enter your city"
567699msgstr "Bitte Ihre Stadt eingeben"
568700
@@ -1023,6 +1155,9 @@ msgstr "Sehr schwaches Passwort"
10231155#~ msgid "Swipe up from the bottom edge."
10241156#~ msgstr "Wischen Sie von der unteren Bildschirmkante nach oben."
10251157
1158+#~ msgid "Tap to unlock"
1159+#~ msgstr "Zum Entsperren tippen"
1160+
10261161#~ msgctxt "Button: Shut down the system"
10271162#~ msgid "Shut down"
10281163#~ msgstr "Ausschalten"
@@ -1092,6 +1227,37 @@ msgstr "Sehr schwaches Passwort"
10921227#~ msgid "Call back"
10931228#~ msgstr "Zurückrufen"
10941229
1230+#~ msgid "Short or long swipe from the right edge to view your open apps"
1231+#~ msgstr ""
1232+#~ "Kurze oder langgezogene Wischgeste von der rechten Kante, um die offenen "
1233+#~ "Anwendungen zu sehen"
1234+
1235+#~ msgid "Swipe up for recent calls"
1236+#~ msgstr "Aufwärts wischen, um die letzten Anrufe anzuzeigen"
1237+
1238+#~ msgid "Swipe up for favorite calculations"
1239+#~ msgstr "Aufwärts wischen, um die Favoriten-Rechnungen anzuzeigen"
1240+
1241+#~ msgid "Swipe up to manage the app"
1242+#~ msgstr "Aufwärts wischen, um die Anwendung zu verwalten"
1243+
1244+#~ msgid "Swipe up to create a message"
1245+#~ msgstr "Aufwärts wischen, um eine Nachricht zu erstellen"
1246+
1247+#~ msgid "Swipe up to add a contact"
1248+#~ msgstr "Aufwärts wischen, um einen Kontakt hinzuzufügen"
1249+
1250+#~ msgid "Swipe from the left edge to open the launcher"
1251+#~ msgstr "Von der linken Kante wischen, um den Starter zu öffnen"
1252+
10951253#~ msgid "Hover your mouse on the right edge to view your open apps"
10961254#~ msgstr ""
10971255#~ "Die Maus auf den rechten Rand bewegen, um die offenen Anwendungen zu sehen"
1256+
1257+#~ msgid "Swipe from the top right edge to open the notification bar"
1258+#~ msgstr ""
1259+#~ "Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
1260+
1261+#~ msgid "Swipe from the top edge to open the notification bar"
1262+#~ msgstr ""
1263+#~ "Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
po/el.po+216−77
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2016-04-25 16:24+0000\n"
1212"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:09+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:55+0000\n"
19+"X-Generator: Launchpad (build 18097)\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
@@ -58,54 +58,54 @@ msgid_plural "Please wait %1 minutes and then try again…"
5858msgstr[0] "Παρακαλώ περιμένετε %1 λεπτό και δοκιμάστε ξανά..."
5959msgstr[1] "Παρακαλώ περιμένετε %1 λεπτά και δοκιμάστε ξανά..."
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 "Επιθυμείτε σίγουρα να αποσυνδεθείτε;"
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
81−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81+#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
8282#: qml/Wizard/Pages/passcode-set.qml:32
8383msgid "Cancel"
8484msgstr "Ακύρωση"
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 "Επιθυμείτε σίγουρα επανεκκίνηση;"
9494
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
9696msgid "No"
9797msgstr "Όχι"
9898
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100100msgid "Yes"
101101msgstr "Ναι"
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,16 +113,176 @@ msgstr ""
113113"Επιθυμείτε σίγουρα τον\n"
114114"τερματισμό λειτουργίας;"
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/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+
126286#: qml/Components/Lockscreen.qml:231
127287msgid "Return to Call"
128288msgstr "Επιστροφή στην κλήση"
@@ -163,26 +323,26 @@ msgstr "Επανασύνδεση τώρα!"
163323msgid "Close all"
164324msgstr "Κλείσιμο όλων"
165325
166−#: qml/Dash/DashPageHeader.qml:337
326+#: qml/Dash/DashPageHeader.qml:333
167327msgctxt "Button: Open the Ubuntu Store"
168328msgid "Store"
169329msgstr "Κατάστημα"
170330
171−#: qml/Dash/DashPageHeader.qml:344
331+#: qml/Dash/DashPageHeader.qml:340
172332msgctxt "Button: Start a search in the current dash scope"
173333msgid "Search"
174334msgstr "Αναζήτηση"
175335
176−#: qml/Dash/DashPageHeader.qml:354
336+#: qml/Dash/DashPageHeader.qml:350
177337msgctxt "Button: Show the current dash scope settings"
178338msgid "Settings"
179339msgstr "Ρυθμίσεις"
180340
181−#: qml/Dash/DashPageHeader.qml:361
341+#: qml/Dash/DashPageHeader.qml:357
182342msgid "Remove from Favorites"
183343msgstr "Αφαίρεση από τα αγαπημένα"
184344
185−#: qml/Dash/DashPageHeader.qml:361
345+#: qml/Dash/DashPageHeader.qml:357
186346msgid "Add to Favorites"
187347msgstr "Προσθήκη στα αγαπημένα"
188348
@@ -194,24 +354,24 @@ msgstr "Βελτιώστε τα αποτελέσματά σας"
194354msgid "Reset"
195355msgstr "Επαναφορά"
196356
197−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
357+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
198358msgid "Show less"
199359msgstr ""
200360
201−#: qml/Dash/GenericScopeView.qml:579
361+#: qml/Dash/GenericScopeView.qml:580
202362msgid "Show all"
203363msgstr ""
204364
205−#: qml/Dash/GenericScopeView.qml:636
365+#: qml/Dash/GenericScopeView.qml:637
206366msgctxt "Label: Hint for dash search line edit"
207367msgid "Search"
208368msgstr "Αναζήτηση"
209369
210−#: qml/Dash/PageHeaderExtraPanel.qml:55
370+#: qml/Dash/PageHeaderExtraPanel.qml:56
211371msgid "Recent Searches"
212372msgstr "Πρόσφατες αναζητήσεις"
213373
214−#: qml/Dash/PageHeaderExtraPanel.qml:66
374+#: qml/Dash/PageHeaderExtraPanel.qml:67
215375msgid "Clear All"
216376msgstr "Καθαρισμός όλων"
217377
@@ -224,15 +384,15 @@ msgid "Less..."
224384msgstr "Λιγότερα..."
225385
226386#: qml/Dash/Previews/PreviewCommentInput.qml:68
227−#: qml/Dash/Previews/PreviewRatingInput.qml:174
387+#: qml/Dash/Previews/PreviewRatingInput.qml:175
228388msgid "Send"
229389msgstr "Αποστολή"
230390
231−#: qml/Dash/Previews/PreviewRatingInput.qml:84
391+#: qml/Dash/Previews/PreviewRatingInput.qml:82
232392msgid "Rate this"
233393msgstr "Βαθμολογήστε το"
234394
235−#: qml/Dash/Previews/PreviewRatingInput.qml:129
395+#: qml/Dash/Previews/PreviewRatingInput.qml:157
236396msgid "Add a review"
237397msgstr "Προσθέστε την αξιολόγησή σας"
238398
@@ -252,15 +412,15 @@ msgstr "Αφήστε για ανανέωση…"
252412msgid "Enable location data"
253413msgstr "Ενεργοποίηση δεδομένων τοποθεσίας"
254414
255−#: qml/Dash/ScopesList.qml:67
415+#: qml/Dash/ScopesList.qml:55
256416msgid "Manage"
257417msgstr "Διαχείριση"
258418
259−#: qml/Dash/ScopesList.qml:113
419+#: qml/Dash/ScopesList.qml:101
260420msgid "Home"
261421msgstr "Αρχή"
262422
263−#: qml/Dash/ScopesList.qml:114
423+#: qml/Dash/ScopesList.qml:102
264424msgid "Also installed"
265425msgstr "Επίσης εγκατεστημένα"
266426
@@ -272,17 +432,17 @@ msgstr ""
272432"Η συσκεύη σας τώρα είναι συνδεδεμένη με μια εξωτερική οθόνη. Χρησιμοποιείστε "
273433"αυτήν την οθόνη ως επιφάνεια αφής για να αλληλεπηδράσετε με τον δείκτη."
274434
275−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:119
276436msgid "Unlock"
277437msgstr "Ξεκλείδωμα"
278438
279−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/LoginList.qml:259
280440msgid "Retry"
281441msgstr "Επανάληψη"
282442
283−#: qml/Greeter/LoginList.qml:240
284−msgid "Tap to unlock"
285−msgstr "Ακουμπήστε για να ξεκλειδώσετε"
443+#: qml/Greeter/LoginList.qml:260
444+msgid "Log In"
445+msgstr ""
286446
287447#: qml/Greeter/NarrowView.qml:54
288448msgid "Sorry, incorrect passphrase."
@@ -415,18 +575,18 @@ msgstr "Ολοκληρώθηκε"
415575msgid "Failed, tap to retry"
416576msgstr "Αποτυχία, πατήστε για να ξαναπροσπαθήσετε"
417577
418−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
419−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
578+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
579+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
420580msgctxt "Button: Send a reply message"
421581msgid "Send"
422582msgstr "Αποστολή"
423583
424−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
584+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
425585msgctxt "Label: Hint in message indicator line edit"
426586msgid "Reply"
427587msgstr "Απάντηση"
428588
429−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
589+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
430590msgctxt "Button: Call back on phone"
431591msgid "Call back"
432592msgstr "Επανάκληση"
@@ -437,32 +597,12 @@ msgstr ""
437597"Σύρετε με την χρήση των 3 δακτύλων οποιαδήποτε εφαρμογή από ένα παράθυρο σε "
438598"άλλο"
439599
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
600+#: qml/Tutorial/TutorialLeftLong.qml:49
461601msgid "Long swipe from the left edge to open the Today scope"
462602msgstr ""
463603
464604#: qml/Tutorial/TutorialLeft.qml:47
465−msgid "Swipe from the left edge to open the launcher"
605+msgid "Short swipe from the left edge to open the launcher"
466606msgstr ""
467607
468608#: qml/Tutorial/TutorialRight.qml:55
@@ -470,15 +610,11 @@ msgid "Push your mouse against the right edge to view your open apps"
470610msgstr ""
471611
472612#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
613+msgid "Swipe from the right edge to view your open apps"
474614msgstr ""
475615
476616#: 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"
617+msgid "Swipe from the top edge to access notifications and quick settings"
482618msgstr ""
483619
484620#: qml/Wizard/Page.qml:54
@@ -490,8 +626,8 @@ msgstr "Πίσω"
490626msgid "Language"
491627msgstr "Γλώσσα"
492628
493−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
494−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
629+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
630+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
495631#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
496632#: qml/Wizard/Pages/75-report-check.qml:84
497633#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -557,7 +693,7 @@ msgstr "Μπορείτε να το αλλάξετε αργότερα στις Ρ
557693msgid "Time Zone"
558694msgstr "Ζώνη ώρας"
559695
560−#: qml/Wizard/Pages/50-timezone.qml:178
696+#: qml/Wizard/Pages/50-timezone.qml:181
561697msgid "Enter your city"
562698msgstr "Εισάγετε την πόλη σας"
563699
@@ -986,6 +1122,9 @@ msgstr ""
9861122#~ msgid "These are the shortcuts to favorite apps"
9871123#~ msgstr "Είναι συντομεύσεις για αγαπημένες εφαρμογές"
9881124
1125+#~ msgid "Tap to unlock"
1126+#~ msgstr "Ακουμπήστε για να ξεκλειδώσετε"
1127+
9891128#~ msgid "You almost got it!"
9901129#~ msgstr "Σχεδόν το είχατε!"
9911130
po/en_AU.po+246−80
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2016-03-27 10:09+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:09+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:55+0000\n"
19+"X-Generator: Launchpad (build 18097)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Password: "
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 shortcut"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Quit"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Unpin shortcut"
3737
@@ -54,54 +54,54 @@ msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] "Please wait %1 minute and then try again…"
5555msgstr[1] "Please wait %1 minutes and then try again…"
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr "Log out"
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr "Are you sure you want to log out?"
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr "Lock"
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "Log Out"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "Cancel"
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr "Reboot"
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr "Are you sure you want to reboot?"
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr "No"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "Yes"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr "Power"
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,16 +109,176 @@ msgstr ""
109109"Are you sure you would like\n"
110110"to power off?"
111111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113113msgctxt "Button: Power off the system"
114114msgid "Power off"
115115msgstr "Power off"
116116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118118msgctxt "Button: Restart the system"
119119msgid "Restart"
120120msgstr "Restart"
121121
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+
122282#: qml/Components/Lockscreen.qml:231
123283msgid "Return to Call"
124284msgstr "Return to Call"
@@ -157,26 +317,26 @@ msgstr "Reconnect now!"
157317msgid "Close all"
158318msgstr "Close all"
159319
160−#: qml/Dash/DashPageHeader.qml:337
320+#: qml/Dash/DashPageHeader.qml:333
161321msgctxt "Button: Open the Ubuntu Store"
162322msgid "Store"
163323msgstr "Store"
164324
165−#: qml/Dash/DashPageHeader.qml:344
325+#: qml/Dash/DashPageHeader.qml:340
166326msgctxt "Button: Start a search in the current dash scope"
167327msgid "Search"
168328msgstr "Search"
169329
170−#: qml/Dash/DashPageHeader.qml:354
330+#: qml/Dash/DashPageHeader.qml:350
171331msgctxt "Button: Show the current dash scope settings"
172332msgid "Settings"
173333msgstr "Settings"
174334
175−#: qml/Dash/DashPageHeader.qml:361
335+#: qml/Dash/DashPageHeader.qml:357
176336msgid "Remove from Favorites"
177337msgstr "Remove from Favourites"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Add to Favorites"
181341msgstr "Add to Favourites"
182342
@@ -188,24 +348,24 @@ msgstr "Refine your results"
188348msgid "Reset"
189349msgstr "Reset"
190350
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
351+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192352msgid "Show less"
193353msgstr ""
194354
195−#: qml/Dash/GenericScopeView.qml:579
355+#: qml/Dash/GenericScopeView.qml:580
196356msgid "Show all"
197357msgstr ""
198358
199−#: qml/Dash/GenericScopeView.qml:636
359+#: qml/Dash/GenericScopeView.qml:637
200360msgctxt "Label: Hint for dash search line edit"
201361msgid "Search"
202362msgstr "Search"
203363
204−#: qml/Dash/PageHeaderExtraPanel.qml:55
364+#: qml/Dash/PageHeaderExtraPanel.qml:56
205365msgid "Recent Searches"
206366msgstr "Recent Searches"
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:66
368+#: qml/Dash/PageHeaderExtraPanel.qml:67
209369msgid "Clear All"
210370msgstr "Clear All"
211371
@@ -218,15 +378,15 @@ msgid "Less..."
218378msgstr "Less..."
219379
220380#: qml/Dash/Previews/PreviewCommentInput.qml:68
221−#: qml/Dash/Previews/PreviewRatingInput.qml:174
381+#: qml/Dash/Previews/PreviewRatingInput.qml:175
222382msgid "Send"
223383msgstr "Send"
224384
225−#: qml/Dash/Previews/PreviewRatingInput.qml:84
385+#: qml/Dash/Previews/PreviewRatingInput.qml:82
226386msgid "Rate this"
227387msgstr "Rate this"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:129
389+#: qml/Dash/Previews/PreviewRatingInput.qml:157
230390msgid "Add a review"
231391msgstr "Add a review"
232392
@@ -246,15 +406,15 @@ msgstr "Release to refresh…"
246406msgid "Enable location data"
247407msgstr "Enable location data"
248408
249−#: qml/Dash/ScopesList.qml:67
409+#: qml/Dash/ScopesList.qml:55
250410msgid "Manage"
251411msgstr "Manage"
252412
253−#: qml/Dash/ScopesList.qml:113
413+#: qml/Dash/ScopesList.qml:101
254414msgid "Home"
255415msgstr "Home"
256416
257−#: qml/Dash/ScopesList.qml:114
417+#: qml/Dash/ScopesList.qml:102
258418msgid "Also installed"
259419msgstr "Also installed"
260420
@@ -266,17 +426,17 @@ msgstr ""
266426"Your device is now connected to an external display. Use this screen as a "
267427"touch pad to interact with the pointer."
268428
269−#: qml/Greeter/CoverPage.qml:118
429+#: qml/Greeter/CoverPage.qml:119
270430msgid "Unlock"
271431msgstr "Unlock"
272432
273−#: qml/Greeter/LoginList.qml:239
433+#: qml/Greeter/LoginList.qml:259
274434msgid "Retry"
275435msgstr "Retry"
276436
277−#: qml/Greeter/LoginList.qml:240
278−msgid "Tap to unlock"
279−msgstr "Tap to unlock"
437+#: qml/Greeter/LoginList.qml:260
438+msgid "Log In"
439+msgstr ""
280440
281441#: qml/Greeter/NarrowView.qml:54
282442msgid "Sorry, incorrect passphrase."
@@ -408,18 +568,18 @@ msgstr "Finished"
408568msgid "Failed, tap to retry"
409569msgstr "Failed, tap to retry"
410570
411−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
412−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
571+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
572+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
413573msgctxt "Button: Send a reply message"
414574msgid "Send"
415575msgstr "Send"
416576
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
418578msgctxt "Label: Hint in message indicator line edit"
419579msgid "Reply"
420580msgstr "Reply"
421581
422−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
582+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
423583msgctxt "Button: Call back on phone"
424584msgid "Call back"
425585msgstr "Call back"
@@ -428,49 +588,25 @@ msgstr "Call back"
428588msgid "Drag using 3 fingers any application from one window to the other"
429589msgstr "Drag using 3 fingers any application from one window to the other"
430590
431−#: qml/Tutorial/TutorialBottom.qml:78
432−msgid "Swipe up to add a contact"
433−msgstr "Swipe up to add a contact"
434−
435−#: qml/Tutorial/TutorialBottom.qml:80
436−msgid "Swipe up for favorite calculations"
437−msgstr "Swipe up for favourite calculations"
438−
439−#: qml/Tutorial/TutorialBottom.qml:82
440−msgid "Swipe up for recent calls"
441−msgstr "Swipe up for recent calls"
442−
443−#: qml/Tutorial/TutorialBottom.qml:84
444−msgid "Swipe up to create a message"
445−msgstr "Swipe up to create a message"
446−
447−#: qml/Tutorial/TutorialBottom.qml:85
448−msgid "Swipe up to manage the app"
449−msgstr "Swipe up to manage the app"
450−
451−#: qml/Tutorial/TutorialLeftLong.qml:47
591+#: qml/Tutorial/TutorialLeftLong.qml:49
452592msgid "Long swipe from the left edge to open the Today scope"
453593msgstr "Long swipe from the left edge to open the Today scope"
454594
455595#: qml/Tutorial/TutorialLeft.qml:47
456−msgid "Swipe from the left edge to open the launcher"
457−msgstr "Swipe from the left edge to open the launcher"
596+msgid "Short swipe from the left edge to open the launcher"
597+msgstr ""
458598
459599#: qml/Tutorial/TutorialRight.qml:55
460600msgid "Push your mouse against the right edge to view your open apps"
461601msgstr ""
462602
463603#: qml/Tutorial/TutorialRight.qml:56
464−msgid "Short or long swipe from the right edge to view your open apps"
465−msgstr "Short or long swipe from the right edge to view your open apps"
604+msgid "Swipe from the right edge to view your open apps"
605+msgstr ""
466606
467607#: qml/Tutorial/TutorialTop.qml:53
468−msgid "Swipe from the top right edge to open the notification bar"
469−msgstr "Swipe from the top right edge to open the notification bar"
470−
471−#: qml/Tutorial/TutorialTop.qml:54
472−msgid "Swipe from the top edge to open the notification bar"
473−msgstr "Swipe from the top edge to open the notification bar"
608+msgid "Swipe from the top edge to access notifications and quick settings"
609+msgstr ""
474610
475611#: qml/Wizard/Page.qml:54
476612msgctxt "Button: Go back one page in the Wizard"
@@ -481,8 +617,8 @@ msgstr "Back"
481617msgid "Language"
482618msgstr "Language"
483619
484−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
485−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
620+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
621+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
486622#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
487623#: qml/Wizard/Pages/75-report-check.qml:84
488624#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -549,7 +685,7 @@ msgstr "You can change it later in System Settings."
549685msgid "Time Zone"
550686msgstr "Time Zone"
551687
552−#: qml/Wizard/Pages/50-timezone.qml:178
688+#: qml/Wizard/Pages/50-timezone.qml:181
553689msgid "Enter your city"
554690msgstr "Enter your city"
555691
@@ -999,6 +1135,9 @@ msgstr "Very weak password"
9991135#~ msgid "Long swipe from the right edge."
10001136#~ msgstr "Long swipe from the right edge."
10011137
1138+#~ msgid "Tap to unlock"
1139+#~ msgstr "Tap to unlock"
1140+
10021141#~ msgctxt "Button: Shut down the system"
10031142#~ msgid "Shut down"
10041143#~ msgstr "Shut down"
@@ -1065,5 +1204,32 @@ msgstr "Very weak password"
10651204#~ msgid "%a %d %b %l:%M %p"
10661205#~ msgstr "%a %b %d %l:%M %p"
10671206
1207+#~ msgid "Swipe up for recent calls"
1208+#~ msgstr "Swipe up for recent calls"
1209+
1210+#~ msgid "Swipe up for favorite calculations"
1211+#~ msgstr "Swipe up for favourite calculations"
1212+
1213+#~ msgid "Swipe up to add a contact"
1214+#~ msgstr "Swipe up to add a contact"
1215+
1216+#~ msgid "Swipe from the left edge to open the launcher"
1217+#~ msgstr "Swipe from the left edge to open the launcher"
1218+
1219+#~ msgid "Swipe from the top right edge to open the notification bar"
1220+#~ msgstr "Swipe from the top right edge to open the notification bar"
1221+
1222+#~ msgid "Swipe from the top edge to open the notification bar"
1223+#~ msgstr "Swipe from the top edge to open the notification bar"
1224+
10681225#~ msgid "Hover your mouse on the right edge to view your open apps"
10691226#~ msgstr "Hover your mouse on the right edge to view your open apps"
1227+
1228+#~ msgid "Short or long swipe from the right edge to view your open apps"
1229+#~ msgstr "Short or long swipe from the right edge to view your open apps"
1230+
1231+#~ msgid "Swipe up to manage the app"
1232+#~ msgstr "Swipe up to manage the app"
1233+
1234+#~ msgid "Swipe up to create a message"
1235+#~ msgstr "Swipe up to create a message"
po/en_GB.po+246−80
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2016-05-10 10:10+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:09+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:55+0000\n"
19+"X-Generator: Launchpad (build 18097)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Password: "
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 shortcut"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
3131msgid "Quit"
3232msgstr "Quit"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr "Unpin shortcut"
3737
@@ -54,54 +54,54 @@ msgid_plural "Please wait %1 minutes and then try again…"
5454msgstr[0] "Please wait %1 minute and then try again…"
5555msgstr[1] "Please wait %1 minutes and then try again…"
5656
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
5858msgctxt "Title: Lock/Log out dialog"
5959msgid "Log out"
6060msgstr "Log out"
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr "Are you sure you want to log out?"
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr "Lock"
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "Log Out"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "Cancel"
8181
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
8383msgctxt "Title: Reboot dialog"
8484msgid "Reboot"
8585msgstr "Reboot"
8686
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
8888msgid "Are you sure you want to reboot?"
8989msgstr "Are you sure you want to reboot?"
9090
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
9292msgid "No"
9393msgstr "No"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "Yes"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr "Power"
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,16 +109,176 @@ msgstr ""
109109"Are you sure you would like\n"
110110"to power off?"
111111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113113msgctxt "Button: Power off the system"
114114msgid "Power off"
115115msgstr "Power off"
116116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118118msgctxt "Button: Restart the system"
119119msgid "Restart"
120120msgstr "Restart"
121121
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+
122282#: qml/Components/Lockscreen.qml:231
123283msgid "Return to Call"
124284msgstr "Return to Call"
@@ -157,26 +317,26 @@ msgstr "Reconnect now!"
157317msgid "Close all"
158318msgstr "Close all"
159319
160−#: qml/Dash/DashPageHeader.qml:337
320+#: qml/Dash/DashPageHeader.qml:333
161321msgctxt "Button: Open the Ubuntu Store"
162322msgid "Store"
163323msgstr "Store"
164324
165−#: qml/Dash/DashPageHeader.qml:344
325+#: qml/Dash/DashPageHeader.qml:340
166326msgctxt "Button: Start a search in the current dash scope"
167327msgid "Search"
168328msgstr "Search"
169329
170−#: qml/Dash/DashPageHeader.qml:354
330+#: qml/Dash/DashPageHeader.qml:350
171331msgctxt "Button: Show the current dash scope settings"
172332msgid "Settings"
173333msgstr "Settings"
174334
175−#: qml/Dash/DashPageHeader.qml:361
335+#: qml/Dash/DashPageHeader.qml:357
176336msgid "Remove from Favorites"
177337msgstr "Remove from Favourites"
178338
179−#: qml/Dash/DashPageHeader.qml:361
339+#: qml/Dash/DashPageHeader.qml:357
180340msgid "Add to Favorites"
181341msgstr "Add to Favourites"
182342
@@ -188,24 +348,24 @@ msgstr "Refine your results"
188348msgid "Reset"
189349msgstr "Reset"
190350
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
351+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192352msgid "Show less"
193353msgstr "Show less"
194354
195−#: qml/Dash/GenericScopeView.qml:579
355+#: qml/Dash/GenericScopeView.qml:580
196356msgid "Show all"
197357msgstr "Show all"
198358
199−#: qml/Dash/GenericScopeView.qml:636
359+#: qml/Dash/GenericScopeView.qml:637
200360msgctxt "Label: Hint for dash search line edit"
201361msgid "Search"
202362msgstr "Search"
203363
204−#: qml/Dash/PageHeaderExtraPanel.qml:55
364+#: qml/Dash/PageHeaderExtraPanel.qml:56
205365msgid "Recent Searches"
206366msgstr "Recent Searches"
207367
208−#: qml/Dash/PageHeaderExtraPanel.qml:66
368+#: qml/Dash/PageHeaderExtraPanel.qml:67
209369msgid "Clear All"
210370msgstr "Clear All"
211371
@@ -218,15 +378,15 @@ msgid "Less..."
218378msgstr "Less..."
219379
220380#: qml/Dash/Previews/PreviewCommentInput.qml:68
221−#: qml/Dash/Previews/PreviewRatingInput.qml:174
381+#: qml/Dash/Previews/PreviewRatingInput.qml:175
222382msgid "Send"
223383msgstr "Send"
224384
225−#: qml/Dash/Previews/PreviewRatingInput.qml:84
385+#: qml/Dash/Previews/PreviewRatingInput.qml:82
226386msgid "Rate this"
227387msgstr "Rate this"
228388
229−#: qml/Dash/Previews/PreviewRatingInput.qml:129
389+#: qml/Dash/Previews/PreviewRatingInput.qml:157
230390msgid "Add a review"
231391msgstr "Add a review"
232392
@@ -246,15 +406,15 @@ msgstr "Release to refresh…"
246406msgid "Enable location data"
247407msgstr "Enable location data"
248408
249−#: qml/Dash/ScopesList.qml:67
409+#: qml/Dash/ScopesList.qml:55
250410msgid "Manage"
251411msgstr "Manage"
252412
253−#: qml/Dash/ScopesList.qml:113
413+#: qml/Dash/ScopesList.qml:101
254414msgid "Home"
255415msgstr "Home"
256416
257−#: qml/Dash/ScopesList.qml:114
417+#: qml/Dash/ScopesList.qml:102
258418msgid "Also installed"
259419msgstr "Also installed"
260420
@@ -266,17 +426,17 @@ msgstr ""
266426"Your device is now connected to an external display. Use this screen as a "
267427"touch pad to interact with the pointer."
268428
269−#: qml/Greeter/CoverPage.qml:118
429+#: qml/Greeter/CoverPage.qml:119
270430msgid "Unlock"
271431msgstr "Unlock"
272432
273−#: qml/Greeter/LoginList.qml:239
433+#: qml/Greeter/LoginList.qml:259
274434msgid "Retry"
275435msgstr "Retry"
276436
277−#: qml/Greeter/LoginList.qml:240
278−msgid "Tap to unlock"
279−msgstr "Tap to unlock"
437+#: qml/Greeter/LoginList.qml:260
438+msgid "Log In"
439+msgstr ""
280440
281441#: qml/Greeter/NarrowView.qml:54
282442msgid "Sorry, incorrect passphrase."
@@ -408,18 +568,18 @@ msgstr "Finished"
408568msgid "Failed, tap to retry"
409569msgstr "Failed, tap to retry"
410570
411−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
412−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
571+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
572+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
413573msgctxt "Button: Send a reply message"
414574msgid "Send"
415575msgstr "Send"
416576
417−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
577+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
418578msgctxt "Label: Hint in message indicator line edit"
419579msgid "Reply"
420580msgstr "Reply"
421581
422−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
582+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
423583msgctxt "Button: Call back on phone"
424584msgid "Call back"
425585msgstr "Call back"
@@ -428,49 +588,25 @@ msgstr "Call back"
428588msgid "Drag using 3 fingers any application from one window to the other"
429589msgstr "Drag using 3 fingers any application from one window to the other"
430590
431−#: qml/Tutorial/TutorialBottom.qml:78
432−msgid "Swipe up to add a contact"
433−msgstr "Swipe up to add a contact"
434−
435−#: qml/Tutorial/TutorialBottom.qml:80
436−msgid "Swipe up for favorite calculations"
437−msgstr "Swipe up for favourite calculations"
438−
439−#: qml/Tutorial/TutorialBottom.qml:82
440−msgid "Swipe up for recent calls"
441−msgstr "Swipe up for recent calls"
442−
443−#: qml/Tutorial/TutorialBottom.qml:84
444−msgid "Swipe up to create a message"
445−msgstr "Swipe up to create a message"
446−
447−#: qml/Tutorial/TutorialBottom.qml:85
448−msgid "Swipe up to manage the app"
449−msgstr "Swipe up to manage the app"
450−
451−#: qml/Tutorial/TutorialLeftLong.qml:47
591+#: qml/Tutorial/TutorialLeftLong.qml:49
452592msgid "Long swipe from the left edge to open the Today scope"
453593msgstr "Long swipe from the left edge to open the Today scope"
454594
455595#: qml/Tutorial/TutorialLeft.qml:47
456−msgid "Swipe from the left edge to open the launcher"
457−msgstr "Swipe from the left edge to open the launcher"
596+msgid "Short swipe from the left edge to open the launcher"
597+msgstr ""
458598
459599#: qml/Tutorial/TutorialRight.qml:55
460600msgid "Push your mouse against the right edge to view your open apps"
461601msgstr "Push your mouse against the right edge to view your open apps"
462602
463603#: qml/Tutorial/TutorialRight.qml:56
464−msgid "Short or long swipe from the right edge to view your open apps"
465−msgstr "Short or long swipe from the right edge to view your open apps"
604+msgid "Swipe from the right edge to view your open apps"
605+msgstr ""
466606
467607#: qml/Tutorial/TutorialTop.qml:53
468−msgid "Swipe from the top right edge to open the notification bar"
469−msgstr "Swipe from the top right edge to open the notification bar"
470−
471−#: qml/Tutorial/TutorialTop.qml:54
472−msgid "Swipe from the top edge to open the notification bar"
473−msgstr "Swipe from the top edge to open the notification bar"
608+msgid "Swipe from the top edge to access notifications and quick settings"
609+msgstr ""
474610
475611#: qml/Wizard/Page.qml:54
476612msgctxt "Button: Go back one page in the Wizard"
@@ -481,8 +617,8 @@ msgstr "Back"
481617msgid "Language"
482618msgstr "Language"
483619
484−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
485−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
620+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
621+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
486622#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
487623#: qml/Wizard/Pages/75-report-check.qml:84
488624#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -549,7 +685,7 @@ msgstr "You can change it later in System Settings."
549685msgid "Time Zone"
550686msgstr "Time Zone"
551687
552−#: qml/Wizard/Pages/50-timezone.qml:178
688+#: qml/Wizard/Pages/50-timezone.qml:181
553689msgid "Enter your city"
554690msgstr "Enter your city"
555691
@@ -999,6 +1135,9 @@ msgstr "Very weak password"
9991135#~ msgid "View all your running tasks."
10001136#~ msgstr "View all your running tasks."
10011137
1138+#~ msgid "Tap to unlock"
1139+#~ msgstr "Tap to unlock"
1140+
10021141#~ msgctxt "Button: Shut down the system"
10031142#~ msgid "Shut down"
10041143#~ msgstr "Shut down"
@@ -1068,5 +1207,32 @@ msgstr "Very weak password"
10681207#~ msgid "Call back"
10691208#~ msgstr "Call back"
10701209
1210+#~ msgid "Swipe up for recent calls"
1211+#~ msgstr "Swipe up for recent calls"
1212+
1213+#~ msgid "Swipe up for favorite calculations"
1214+#~ msgstr "Swipe up for favourite calculations"
1215+
1216+#~ msgid "Swipe up to manage the app"
1217+#~ msgstr "Swipe up to manage the app"
1218+
1219+#~ msgid "Swipe up to create a message"
1220+#~ msgstr "Swipe up to create a message"
1221+
1222+#~ msgid "Swipe up to add a contact"
1223+#~ msgstr "Swipe up to add a contact"
1224+
1225+#~ msgid "Swipe from the top right edge to open the notification bar"
1226+#~ msgstr "Swipe from the top right edge to open the notification bar"
1227+
1228+#~ msgid "Swipe from the top edge to open the notification bar"
1229+#~ msgstr "Swipe from the top edge to open the notification bar"
1230+
10711231#~ msgid "Hover your mouse on the right edge to view your open apps"
10721232#~ msgstr "Hover your mouse on the right edge to view your open apps"
1233+
1234+#~ msgid "Short or long swipe from the right edge to view your open apps"
1235+#~ msgstr "Short or long swipe from the right edge to view your open apps"
1236+
1237+#~ msgid "Swipe from the left edge to open the launcher"
1238+#~ msgstr "Swipe from the left edge to open the launcher"
po/eo.po+212−76
@@ -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-20 08:44+0000\n"
10+"POT-Creation-Date: 2016-06-17 01:22+0000\n"
1111"PO-Revision-Date: 2015-06-06 23:37+0000\n"
1212"Last-Translator: Eliovir <Unknown>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,23 +15,23 @@ 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-05-25 06:08+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
18+"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19+"X-Generator: Launchpad (build 18097)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Pasvorto: "
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 "Ĉesi"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
3535msgid "Unpin shortcut"
3636msgstr ""
3737
@@ -54,69 +54,229 @@ msgid_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 "Elsaluti"
6161
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
6363msgid "Are you sure you want to log out?"
6464msgstr "Ĉu vi certas, ke vi volas elsaluti?"
6565
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
6767msgctxt "Button: Lock the system"
6868msgid "Lock"
6969msgstr "Ŝlosi"
7070
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
7272msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "Elsaluti"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
7878#: qml/Wizard/Pages/passcode-set.qml:32
7979msgid "Cancel"
8080msgstr "Nuligi"
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 "Ne"
9494
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
9696msgid "Yes"
9797msgstr "Jes"
9898
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100100msgctxt "Title: Power off/Restart dialog"
101101msgid "Power"
102102msgstr "Energio"
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/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+
120280#: qml/Components/Lockscreen.qml:231
121281msgid "Return to Call"
122282msgstr ""
@@ -155,26 +315,26 @@ msgstr ""
155315msgid "Close all"
156316msgstr ""
157317
158−#: qml/Dash/DashPageHeader.qml:337
318+#: qml/Dash/DashPageHeader.qml:333
159319msgctxt "Button: Open the Ubuntu Store"
160320msgid "Store"
161321msgstr "Programarejo"
162322
163−#: qml/Dash/DashPageHeader.qml:344
323+#: qml/Dash/DashPageHeader.qml:340
164324msgctxt "Button: Start a search in the current dash scope"
165325msgid "Search"
166326msgstr "Serĉi"
167327
168−#: qml/Dash/DashPageHeader.qml:354
328+#: qml/Dash/DashPageHeader.qml:350
169329msgctxt "Button: Show the current dash scope settings"
170330msgid "Settings"
171331msgstr "Agordoj"
172332
173−#: qml/Dash/DashPageHeader.qml:361
333+#: qml/Dash/DashPageHeader.qml:357
174334msgid "Remove from Favorites"
175335msgstr ""
176336
177−#: qml/Dash/DashPageHeader.qml:361
337+#: qml/Dash/DashPageHeader.qml:357
178338msgid "Add to Favorites"
179339msgstr "Aldoni al favoritoj"
180340
@@ -186,24 +346,24 @@ msgstr ""
186346msgid "Reset"
187347msgstr ""
188348
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
349+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190350msgid "Show less"
191351msgstr ""
192352
193−#: qml/Dash/GenericScopeView.qml:579
353+#: qml/Dash/GenericScopeView.qml:580
194354msgid "Show all"
195355msgstr ""
196356
197−#: qml/Dash/GenericScopeView.qml:636
357+#: qml/Dash/GenericScopeView.qml:637
198358msgctxt "Label: Hint for dash search line edit"
199359msgid "Search"
200360msgstr "Serĉi"
201361
202−#: qml/Dash/PageHeaderExtraPanel.qml:55
362+#: qml/Dash/PageHeaderExtraPanel.qml:56
203363msgid "Recent Searches"
204364msgstr ""
205365
206−#: qml/Dash/PageHeaderExtraPanel.qml:66
366+#: qml/Dash/PageHeaderExtraPanel.qml:67
207367msgid "Clear All"
208368msgstr ""
209369
@@ -216,15 +376,15 @@ msgid "Less..."
216376msgstr "Malpli..."
217377
218378#: qml/Dash/Previews/PreviewCommentInput.qml:68
219−#: qml/Dash/Previews/PreviewRatingInput.qml:174
379+#: qml/Dash/Previews/PreviewRatingInput.qml:175
220380msgid "Send"
221381msgstr "Sendi"
222382
223−#: qml/Dash/Previews/PreviewRatingInput.qml:84
383+#: qml/Dash/Previews/PreviewRatingInput.qml:82
224384msgid "Rate this"
225385msgstr ""
226386
227−#: qml/Dash/Previews/PreviewRatingInput.qml:129
387+#: qml/Dash/Previews/PreviewRatingInput.qml:157
228388msgid "Add a review"
229389msgstr ""
230390
@@ -244,15 +404,15 @@ msgstr ""
244404msgid "Enable location data"
245405msgstr ""
246406
247−#: qml/Dash/ScopesList.qml:67
407+#: qml/Dash/ScopesList.qml:55
248408msgid "Manage"
249409msgstr "Administri"
250410
251−#: qml/Dash/ScopesList.qml:113
411+#: qml/Dash/ScopesList.qml:101
252412msgid "Home"
253413msgstr "Hejmo"
254414
255−#: qml/Dash/ScopesList.qml:114
415+#: qml/Dash/ScopesList.qml:102
256416msgid "Also installed"
257417msgstr ""
258418
@@ -262,16 +422,16 @@ msgid ""
262422"touch pad to interact with the pointer."
263423msgstr ""
264424
265−#: qml/Greeter/CoverPage.qml:118
425+#: qml/Greeter/CoverPage.qml:119
266426msgid "Unlock"
267427msgstr "Malŝlosi"
268428
269−#: qml/Greeter/LoginList.qml:239
429+#: qml/Greeter/LoginList.qml:259
270430msgid "Retry"
271431msgstr "Reprovi"
272432
273−#: qml/Greeter/LoginList.qml:240
274−msgid "Tap to unlock"
433+#: qml/Greeter/LoginList.qml:260
434+msgid "Log In"
275435msgstr ""
276436
277437#: qml/Greeter/NarrowView.qml:54
@@ -400,18 +560,18 @@ msgstr "Finita"
400560msgid "Failed, tap to retry"
401561msgstr ""
402562
403−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
563+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
564+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
405565msgctxt "Button: Send a reply message"
406566msgid "Send"
407567msgstr "Sendi"
408568
409−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
569+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:152
410570msgctxt "Label: Hint in message indicator line edit"
411571msgid "Reply"
412572msgstr "Respondi"
413573
414−#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
574+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:209
415575msgctxt "Button: Call back on phone"
416576msgid "Call back"
417577msgstr ""
@@ -420,32 +580,12 @@ msgstr ""
420580msgid "Drag using 3 fingers any application from one window to the other"
421581msgstr ""
422582
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
583+#: qml/Tutorial/TutorialLeftLong.qml:49
444584msgid "Long swipe from the left edge to open the Today scope"
445585msgstr ""
446586
447587#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
588+msgid "Short swipe from the left edge to open the launcher"
449589msgstr ""
450590
451591#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +593,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453593msgstr ""
454594
455595#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
596+msgid "Swipe from the right edge to view your open apps"
457597msgstr ""
458598
459599#: 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"
600+msgid "Swipe from the top edge to access notifications and quick settings"
465601msgstr ""
466602
467603#: qml/Wizard/Page.qml:54
@@ -473,8 +609,8 @@ msgstr "Reen"
473609msgid "Language"
474610msgstr ""
475611
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
612+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478614#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479615#: qml/Wizard/Pages/75-report-check.qml:84
480616#: qml/Wizard/Pages/passcode-desktop.qml:124
@@ -539,7 +675,7 @@ msgstr ""
539675msgid "Time Zone"
540676msgstr ""
541677
542−#: qml/Wizard/Pages/50-timezone.qml:178
678+#: qml/Wizard/Pages/50-timezone.qml:181
543679msgid "Enter your city"
544680msgstr ""
545681
po/es.po+248−82

This diff is too big to show here.

po/eu.po+216−77

This diff is too big to show here.

po/fa.po+246−80

This diff is too big to show here.

po/fi.po+247−81

This diff is too big to show here.

po/fo.po+298−158

This diff is too big to show here.

po/fr.po+250−84

This diff is too big to show here.

po/ga.po+216−77

This diff is too big to show here.

po/gd.po+249−83

This diff is too big to show here.

po/gl.po+246−80

This diff is too big to show here.

po/gv.po+212−76

This diff is too big to show here.

po/he.po+216−77

This diff is too big to show here.

po/hi.po+212−76

This diff is too big to show here.

po/hr.po+247−81

This diff is too big to show here.

po/hu.po+246−80

This diff is too big to show here.

po/hy.po+212−76

This diff is too big to show here.

po/ia.po+246−80

This diff is too big to show here.

po/id.po+212−76

This diff is too big to show here.

po/is.po+212−76

This diff is too big to show here.

po/it.po+247−81

This diff is too big to show here.

po/ja.po+212−76

This diff is too big to show here.

po/km.po+212−76

This diff is too big to show here.

po/kn.po+212−76

This diff is too big to show here.

po/ko.po+216−77

This diff is too big to show here.

po/ku.po+212−76

This diff is too big to show here.

po/ky.po+212−76

This diff is too big to show here.

po/lo.po+212−76

This diff is too big to show here.

po/lt.po+212−76

This diff is too big to show here.

po/lv.po+216−77

This diff is too big to show here.

po/ml.po+212−76

This diff is too big to show here.

po/mr.po+212−76

This diff is too big to show here.

po/ms.po+252−81

This diff is too big to show here.

po/my.po+212−76

This diff is too big to show here.

po/nb.po+246−80

This diff is too big to show here.

po/ne.po+212−76

This diff is too big to show here.

po/nl.po+242−79

This diff is too big to show here.

po/nn.po+212−76

This diff is too big to show here.

po/oc.po+225−77

This diff is too big to show here.

po/or.po+212−76

This diff is too big to show here.

po/pa.po+216−77

This diff is too big to show here.

po/pl.po+248−82

This diff is too big to show here.

po/pt.po+247−81

This diff is too big to show here.

po/pt_BR.po+216−77

This diff is too big to show here.

po/ro.po+216−77

This diff is too big to show here.

po/ru.po+250−91

This diff is too big to show here.

po/shn.po+212−76

This diff is too big to show here.

po/si.po+212−76

This diff is too big to show here.

po/sk.po+247−81

This diff is too big to show here.

po/sl.po+246−80

This diff is too big to show here.

po/sq.po+216−77

This diff is too big to show here.

po/sr.po+246−80

This diff is too big to show here.

po/sv.po+252−85

This diff is too big to show here.

po/sw.po+216−77

This diff is too big to show here.

po/ta.po+212−76

This diff is too big to show here.

po/te.po+212−76

This diff is too big to show here.

po/th.po+212−76

This diff is too big to show here.

po/tr.po+216−77

This diff is too big to show here.

po/ug.po+216−77

This diff is too big to show here.

po/uk.po+247−81

This diff is too big to show here.

po/unity8.pot+210−74

This diff is too big to show here.

po/ur.po+212−76

This diff is too big to show here.

po/uz.po+212−76

This diff is too big to show here.

po/vi.po+212−76

This diff is too big to show here.

po/wo.po+216−77

This diff is too big to show here.

po/xh.po+212−76

This diff is too big to show here.

po/zh_CN.po+246−80

This diff is too big to show here.

po/zh_HK.po+212−76

This diff is too big to show here.

po/zh_TW.po+216−77

This diff is too big to show here.

qml/Components/Dialogs.qml+5−3

This diff is too big to show here.

qml/Components/DragHandle.qml+43−25

This diff is too big to show here.

qml/Components/FadingLabel.qmlnew file+42

This diff is too big to show here.

qml/Components/FloatingFlickable.qmlnew file+59

This diff is too big to show here.

qml/Components/Header.qmldeleted−28

This diff is too big to show here.

qml/Components/KeyboardShortcutsOverlay.qmlnew file+334

This diff is too big to show here.

qml/Components/ModeSwitchWarningDialog.qml+1−1

This diff is too big to show here.

qml/Components/PanelState/PanelState.qml+4−3

This diff is too big to show here.

qml/Components/PhysicalKeysMapper.qml+2−22

This diff is too big to show here.

qml/Components/Rating.qml+1

This diff is too big to show here.

qml/Components/RatingStyle.qml+3

This diff is too big to show here.

qml/Components/WindowControlButtons.qml+39−34

This diff is too big to show here.

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−1

This diff is too big to show here.

qml/Dash/CardGrid.qml−2

This diff is too big to show here.

qml/Dash/CardTool.qml+6−2

This diff is too big to show here.

qml/Dash/Dash.qml+3−3

This diff is too big to show here.

qml/Dash/DashApplication.qml−3

This diff is too big to show here.

qml/Dash/DashCategoryBase.qml+3−11

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+31−36

This diff is too big to show here.

qml/Dash/Filters/FilterOptionSelector.qml+4

This diff is too big to show here.

qml/Dash/Filters/FilterWidgetFactory.qml+8

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+20−9

This diff is too big to show here.

qml/Dash/PageHeaderExtraPanel.qml+34−10

This diff is too big to show here.

qml/Dash/Previews/Preview.qml+1

This diff is too big to show here.

qml/Dash/Previews/PreviewActions.qml+1−1

This diff is too big to show here.

qml/Dash/Previews/PreviewImageGallery.qml+1

This diff is too big to show here.

qml/Dash/Previews/PreviewPayments.qml+1−1

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingInput.qml+41−42

This diff is too big to show here.

qml/Dash/ScopesList.qml+1−13

This diff is too big to show here.

qml/Greeter/CoverPage.qml+1

This diff is too big to show here.

qml/Greeter/Greeter.qml+18−14

This diff is too big to show here.

qml/Greeter/GreeterPrompt.qmlnew file+142

This diff is too big to show here.

qml/Greeter/LoginList.qml+59−76

This diff is too big to show here.

qml/Greeter/WideView.qml+1−1

This diff is too big to show here.

qml/Launcher/Launcher.qml+17−24

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+6−10

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+2

This diff is too big to show here.

qml/Notifications/Notification.qml+36−5

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+19−9

This diff is too big to show here.

qml/Panel/Indicators/MessageMenuItemFactory.qml+1−5

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+17−13

This diff is too big to show here.

qml/Panel/Panel.qml+20−7

This diff is too big to show here.

qml/Shell.qml+55−14

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+25−9

This diff is too big to show here.

qml/Stages/DecoratedWindow.qml+47−17

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+1−1

This diff is too big to show here.

qml/Stages/DesktopSpreadDelegate.qml+1−1

This diff is too big to show here.

qml/Stages/DesktopStage.qml+112−55

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+4−4

This diff is too big to show here.

qml/Stages/ResizeGrip.qmlnew file+46

This diff is too big to show here.

qml/Stages/SideStage.qml+1−2

This diff is too big to show here.

qml/Stages/Splash.qml+6−17

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+8−12

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+4−5

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+30−11

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+29−9

This diff is too big to show here.

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

Binary file not shown.

qml/Stages/graphics/arrows.pngnew file

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/Wizard/Pages/10-welcome.qml+17−4

This diff is too big to show here.

qml/Wizard/Pages/50-timezone.qml+5−2

This diff is too big to show here.

src/CMakeLists.txt+1−4

This diff is too big to show here.

src/Dash/CMakeLists.txt+1

This diff is too big to show here.

src/Dash/main.cpp+7

This diff is too big to show here.

tools/unix-signal-handler.cpp → src/UnixSignalHandler.cpprenamed+4−6

This diff is too big to show here.

tools/unix-signal-handler.h → src/UnixSignalHandler.hrenamed

The content is the same.

src/main.cpp+8

This diff is too big to show here.

tests/CMakeLists.txt−1

This diff is too big to show here.

tests/autopilot/unity8/dash.py+2−3

This diff is too big to show here.

tests/libs/CMakeLists.txtdeleted−1

This diff is too big to show here.

tests/libs/UbuntuGestures/CMakeLists.txtdeleted−16

This diff is too big to show here.

tests/libs/UbuntuGestures/tst_TouchRegistry.cppdeleted−974

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypesdeleted−41

This diff is too big to show here.

tests/mocks/Cursor/qmldir+1−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

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.h+2−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypesdeleted−269

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+1−1

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/QtMultimedia.qmltypesdeleted−62

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cpp+3−3

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.h+12−6

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/MockPayments.cpp+1

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/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/SystemSettings/TimeDate/CMakeLists.txt+1−1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/TimeDate/MockTimeDate.qml+15−3

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/TimeDate/qmldir+1−1

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−27

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+12

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.h+2−2

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+1

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/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/Indicators.qmltypesdeleted−232

This diff is too big to show here.

tests/mocks/Unity/InputInfo/plugin.h+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/Notifications.qmltypesdeleted−149

This diff is too big to show here.

tests/mocks/Unity/Screens/plugin.h+1−1

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−4

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_scopes.cpp+12

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/Utils.qmltypesdeleted−178

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+14−3

This diff is too big to show here.

tests/mocks/Wizard/Wizard.qmltypesdeleted−37

This diff is too big to show here.

tests/mocks/libusermetrics/UserMetrics.cpp+1−1

This diff is too big to show here.

tests/plugins/CMakeLists.txt+2−1

This diff is too big to show here.

tests/plugins/Cursor/CMakeLists.txtnew file+8

This diff is too big to show here.

tests/plugins/Cursor/TextEntry.qmlnew file+34

This diff is too big to show here.

tests/plugins/Cursor/tst_Cursor.qmlnew file+144

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res+17−46

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res.cardcreator+13−43

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreator/10.res+4−13

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/10.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res+20−49

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res.cardcreator+15−45

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res+17−46

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.tst+1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/2.tst+1

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res.cardcreator+12−51

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.tst+1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/4.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res+11−55

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.tst+1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreator/7.res+4−13

This diff is too big to show here.

tests/plugins/Dash/cardcreator/7.res.cardcreator−10

This diff is too big to show here.

tests/plugins/Dash/cardcreator/7.tst+1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/8.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreator/9.res+5−6

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/9.tst+1

This diff is too big to show here.

tests/plugins/Dash/cardcreatortest.cpp+9−6

This diff is too big to show here.

tests/plugins/Dash/cardcreatortest.qml+4−4

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp+3−3

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+9−3

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertestsection.qml+15−3

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertestsectionexternalmodel.qml+2−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/tst_ListViewWithPageHeaderQML.qml+4−2

This diff is too big to show here.

tests/plugins/Dash/tst_ScopeStyle.qml+1−1

This diff is too big to show here.

tests/plugins/Dash/verticaljournaltest.cpp+1−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/DownwardsLauncher.qmldeleted−72

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/LeftwardsLauncher.qmldeleted−76

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/RightwardsLauncher.qmldeleted−76

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/UpwardsLauncher.qmldeleted−76

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_Damper.cppdeleted−40

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.cppdeleted−1250

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.qmldeleted−76

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+25−18

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.qml+1

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Unity/Indicators/MenuContentActivatorTest.cpp+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+22−2

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Utils/WindowInputMonitorTest.cpp+52−11

This diff is too big to show here.

tests/qmltests/Components/CMakeLists.txt+6−3

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle.cpp+28−24

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle.qml+22−4

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle/BottomEdgeShowable.qmlnew file+108

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle/HorizontalShowable.qml → tests/qmltests/Components/tst_DragHandle/LeftEdgeShowable.qmlrenamed

The content is the same.

tests/qmltests/Components/tst_DragHandle/RightEdgeShowable.qmlnew file+108

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle/VerticalShowable.qml → tests/qmltests/Components/tst_DragHandle/TopEdgeShowable.qmlrenamed+7−7

This diff is too big to show here.

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

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_Preview.qml−1

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_PreviewRatingEdit.qml+5−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingInput.qml+18−6

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/tst_Card.qml+23−11

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+103−63

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+63−4

This diff is too big to show here.

tests/qmltests/Dash/tst_DashPageHeader.qml−24

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+30−2

This diff is too big to show here.

tests/qmltests/Dash/tst_PreviewView.qml+3−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Greeter/tst_WideView.qml+22−29

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+38−10

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+89

This diff is too big to show here.

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

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+54−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+16−5

This diff is too big to show here.

tests/qmltests/Tutorial/tst_Tutorial.qml+175−209

This diff is too big to show here.

tests/qmltests/Wizard/tst_Wizard.qml+4−3

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+15−2

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+69−20

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+1−1

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/uqmlscene/main.cpp−1

This diff is too big to show here.

tests/utils/modules/Unity/Test/CMakeLists.txt+4−2

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/UnityTestCase.qml+31−12

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.cpp+19−2

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/CMakeLists.txt+1−1

This diff is too big to show here.

tools/scopetool.cpp+1−1

This diff is too big to show here.