From 3f32a18b6299ff50f5a143f93d8e495cd0179a36 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Wed, 22 Jul 2020 17:17:10 +0200 Subject: [PATCH] make use of HomeScreenControls --- components/HomeScreenControls.qml | 4 +-- .../homescreen/package/contents/ui/main.qml | 27 +++++++++++++++++++ .../panel/package/contents/ui/main.qml | 4 ++- .../taskpanel/package/contents/ui/main.qml | 15 ++++++++--- 4 files changed, 44 insertions(+), 6 deletions(-) diff --git a/components/HomeScreenControls.qml b/components/HomeScreenControls.qml index c41fde7e..01765824 100644 --- a/components/HomeScreenControls.qml +++ b/components/HomeScreenControls.qml @@ -26,6 +26,6 @@ QtObject { signal resetHomeScreenPosition() property Item homeScreen - property Window homeScreenWindow - property bool homeScreenVisible + property QtObject homeScreenWindow + property bool homeScreenVisible: true } diff --git a/containments/homescreen/package/contents/ui/main.qml b/containments/homescreen/package/contents/ui/main.qml index 18f5d9a0..40d7f566 100644 --- a/containments/homescreen/package/contents/ui/main.qml +++ b/containments/homescreen/package/contents/ui/main.qml @@ -18,6 +18,7 @@ */ import QtQuick 2.12 +import QtQuick.Window 2.12 import QtQuick.Layouts 1.1 import QtGraphicalEffects 1.0 @@ -32,6 +33,8 @@ import org.kde.plasma.private.containmentlayoutmanager 1.0 as ContainmentLayoutM import org.kde.phone.homescreen 1.0 +import org.kde.plasma.private.mobileshell 1.0 as MobileShell + Item { id: root width: 640 @@ -74,10 +77,34 @@ Item { onWidthChanged: recalculateMaxFavoriteCount() onHeightChanged:recalculateMaxFavoriteCount() Component.onCompleted: { + if (plasmoid.screen == 0) { + MobileShell.HomeScreenControls.homeScreen = root + MobileShell.HomeScreenControls.homeScreenWindow = root.Window.window + } componentComplete = true; recalculateMaxFavoriteCount() } + Plasmoid.onScreenChanged: { + if (plasmoid.screen == 0) { + MobileShell.HomeScreenControls.homeScreen = root + MobileShell.HomeScreenControls.homeScreenWindow = root.Window.window + } + } + Window.onWindowChanged: { + if (plasmoid.screen == 0) { + MobileShell.HomeScreenControls.homeScreenWindow = root.Window.window + } + } + + Connections { + target: MobileShell.HomeScreenControls + function onResetHomeScreenPosition() { + scrollAnim.to = 0; + scrollAnim.restart(); + } + } + Timer { id: autoScrollTimer property bool scrollDown: true diff --git a/containments/panel/package/contents/ui/main.qml b/containments/panel/package/contents/ui/main.qml index 165a5fb2..2dbfa0b1 100644 --- a/containments/panel/package/contents/ui/main.qml +++ b/containments/panel/package/contents/ui/main.qml @@ -29,12 +29,14 @@ import org.kde.plasma.workspace.components 2.0 as PlasmaWorkspace import org.kde.taskmanager 0.1 as TaskManager import org.kde.plasma.private.nanoshell 2.0 as NanoShell +import org.kde.plasma.private.mobileshell 1.0 as MobileShell import "LayoutManager.js" as LayoutManager import "quicksettings" import "indicators" as Indicators + Item { id: root width: 480 @@ -47,7 +49,7 @@ Item { property bool reorderingApps: false property var layoutManager: LayoutManager - readonly property bool showingApp: !plasmoid.nativeInterface.showDesktop && (hasTasks || NanoShell.StartupFeedback.visible) + readonly property bool showingApp: !MobileShell.HomeScreenControls.homeScreenVisible//!plasmoid.nativeInterface.showDesktop && (hasTasks || NanoShell.StartupFeedback.visible) readonly property bool hasTasks: tasksModel.count > 0 diff --git a/containments/taskpanel/package/contents/ui/main.qml b/containments/taskpanel/package/contents/ui/main.qml index 7968f839..dee78665 100644 --- a/containments/taskpanel/package/contents/ui/main.qml +++ b/containments/taskpanel/package/contents/ui/main.qml @@ -29,6 +29,8 @@ import org.kde.kquickcontrolsaddons 2.0 import org.kde.plasma.private.nanoshell 2.0 as NanoShell +import org.kde.plasma.private.mobileshell 1.0 as MobileShell + PlasmaCore.ColorScope { id: root width: 600 @@ -37,7 +39,7 @@ PlasmaCore.ColorScope { Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground - readonly property bool showingApp: !plasmoid.nativeInterface.showDesktop && (hasTasks || NanoShell.StartupFeedback.visible) + readonly property bool showingApp: plasmoid.nativeInterface.hasCloseableActiveWindow// !plasmoid.nativeInterface.showDesktop && (hasTasks || NanoShell.StartupFeedback.visible) readonly property bool hasTasks: tasksModel.count > 0 @@ -46,6 +48,12 @@ PlasmaCore.ColorScope { id: taskSwitcherLoader } //FIXME: why it crashes on startup if TaskSwitcher is loaded immediately? + Connections { + target: plasmoid.nativeInterface + function onHasCloseableActiveWindowChanged() { + MobileShell.HomeScreenControls.homeScreenVisible = !plasmoid.nativeInterface.hasCloseableActiveWindow + } + } Timer { running: true interval: 200 @@ -204,10 +212,11 @@ PlasmaCore.ColorScope { anchors.horizontalCenter: parent.horizontalCenter iconSource: "start-here-kde" enabled: taskSwitcher && taskSwitcher.tasksCount > 0 - checkable: true - onCheckedChanged: { + //checkable: true + onClicked: { taskSwitcher.hide(); root.minimizeAll(); + MobileShell.HomeScreenControls.resetHomeScreenPosition() //plasmoid.nativeInterface.showDesktop = checked; } onPressed: mainMouseArea.managePressed(mouse);