diff --git a/components/mobilehomescreencomponents/qml/HomeScreen.qml b/components/mobilehomescreencomponents/qml/HomeScreen.qml index 1ecc88bf..a0c549ae 100644 --- a/components/mobilehomescreencomponents/qml/HomeScreen.qml +++ b/components/mobilehomescreencomponents/qml/HomeScreen.qml @@ -66,6 +66,12 @@ Item { width: flickContainer.width height: flickContainer.height + // listen to app launch errors + Connections { + target: HomeScreenComponents.ApplicationListModel + onLaunchError: MobileShell.HomeScreenControls.closeAppLaunchAnimation() + } + // horizontal pages HomeScreenPages { id: pages diff --git a/components/mobilehomescreencomponents/qml/LauncherRepeater.qml b/components/mobilehomescreencomponents/qml/LauncherRepeater.qml index 3d2eb873..dc622c1c 100644 --- a/components/mobilehomescreencomponents/qml/LauncherRepeater.qml +++ b/components/mobilehomescreencomponents/qml/LauncherRepeater.qml @@ -106,7 +106,7 @@ Repeater { onLaunch: (x, y, icon, title) => { if (icon !== "") { print(delegate.iconItem) - MobileShell.HomeScreenControls.openAppAnimation( + MobileShell.HomeScreenControls.openAppLaunchAnimation( icon, title, delegate.iconItem.Kirigami.ScenePosition.x + delegate.iconItem.width/2, diff --git a/components/mobilehomescreencomponents/qml/appdrawer/GridViewAppDrawer.qml b/components/mobilehomescreencomponents/qml/appdrawer/GridViewAppDrawer.qml index 9a32a6ba..93097c97 100644 --- a/components/mobilehomescreencomponents/qml/appdrawer/GridViewAppDrawer.qml +++ b/components/mobilehomescreencomponents/qml/appdrawer/GridViewAppDrawer.qml @@ -60,7 +60,7 @@ AbstractAppDrawer { } onLaunch: (x, y, icon, title, storageId) => { if (icon !== "") { - MobileShell.HomeScreenControls.openAppAnimation( + MobileShell.HomeScreenControls.openAppLaunchAnimation( icon, title, delegate.iconItem.Kirigami.ScenePosition.x + delegate.iconItem.width/2, diff --git a/components/mobilehomescreencomponents/qml/appdrawer/ListViewAppDrawer.qml b/components/mobilehomescreencomponents/qml/appdrawer/ListViewAppDrawer.qml index ccd2af74..4c1d8350 100644 --- a/components/mobilehomescreencomponents/qml/appdrawer/ListViewAppDrawer.qml +++ b/components/mobilehomescreencomponents/qml/appdrawer/ListViewAppDrawer.qml @@ -57,7 +57,7 @@ AbstractAppDrawer { } onLaunch: (x, y, icon, title, storageId) => { if (icon !== "") { - MobileShell.HomeScreenControls.openAppAnimation( + MobileShell.HomeScreenControls.openAppLaunchAnimation( icon, title, delegate.iconItem.Kirigami.ScenePosition.x + delegate.iconItem.width/2, diff --git a/containments/homescreen/package/contents/ui/main.qml b/containments/homescreen/package/contents/ui/main.qml index 33f6ab5c..41355401 100644 --- a/containments/homescreen/package/contents/ui/main.qml +++ b/containments/homescreen/package/contents/ui/main.qml @@ -69,9 +69,13 @@ FocusScope { //lastRequestedPosition = pos.y; } - function onOpenAppAnimation(splashIcon, title, x, y, sourceIconSize) { + function onOpenAppLaunchAnimation(splashIcon, title, x, y, sourceIconSize) { startupFeedback.open(splashIcon, title, x, y, sourceIconSize); } + + function onCloseAppLaunchAnimation() { + startupFeedback.close(); + } } Plasmoid.onScreenChanged: { diff --git a/libmobileshell/declarative/qml/HomeScreenControls.qml b/libmobileshell/declarative/qml/HomeScreenControls.qml index 93770c8a..288608e1 100644 --- a/libmobileshell/declarative/qml/HomeScreenControls.qml +++ b/libmobileshell/declarative/qml/HomeScreenControls.qml @@ -21,7 +21,8 @@ QtObject { signal snapHomeScreenPosition() signal requestRelativeScroll(point pos) - signal openAppAnimation(string splashIcon, string title, real x, real y, real sourceIconSize) + signal openAppLaunchAnimation(string splashIcon, string title, real x, real y, real sourceIconSize) + signal closeAppLaunchAnimation() property var taskSwitcher property QtObject homeScreenWindow diff --git a/libmobileshell/declarative/qml/actiondrawer/quicksettings/QuickSettingsDelegate.qml b/libmobileshell/declarative/qml/actiondrawer/quicksettings/QuickSettingsDelegate.qml index 2d2a4a69..18c88434 100644 --- a/libmobileshell/declarative/qml/actiondrawer/quicksettings/QuickSettingsDelegate.qml +++ b/libmobileshell/declarative/qml/actiondrawer/quicksettings/QuickSettingsDelegate.qml @@ -47,7 +47,7 @@ Components.BaseItem { root.toggleFunction(); } else if (root.settingsCommand) { closeRequested(); - MobileShell.HomeScreenControls.openAppAnimation( + MobileShell.HomeScreenControls.openAppLaunchAnimation( root.icon, root.text, iconItem.Kirigami.ScenePosition.x + iconItem.width/2, @@ -60,7 +60,7 @@ Components.BaseItem { function delegatePressAndHold() { if (root.settingsCommand) { closeRequested(); - MobileShell.HomeScreenControls.openAppAnimation( + MobileShell.HomeScreenControls.openAppLaunchAnimation( root.icon, root.text, iconItem.Kirigami.ScenePosition.x + iconItem.width/2, diff --git a/libmobileshell/declarative/qml/osd/volume/VolumeOSD.qml b/libmobileshell/declarative/qml/osd/volume/VolumeOSD.qml index 2d78c6e1..db0fa2da 100644 --- a/libmobileshell/declarative/qml/osd/volume/VolumeOSD.qml +++ b/libmobileshell/declarative/qml/osd/volume/VolumeOSD.qml @@ -171,7 +171,7 @@ NanoShell.FullScreenOverlay { onClicked: { let coords = mapToItem(flickable, 0, 0); - MobileShell.HomeScreenControls.openAppAnimation("audio-volume-high", i18n("Audio Settings"), coords.x, coords.y, PlasmaCore.Units.iconSizes.medium); + MobileShell.HomeScreenControls.openAppLaunchAnimation("audio-volume-high", i18n("Audio Settings"), coords.x, coords.y, PlasmaCore.Units.iconSizes.medium); plasmoid.nativeInterface.executeCommand("plasma-open-settings kcm_pulseaudio"); } }