From b27e67037ccda617d2f20a2fe12381c8a3b10527 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 16 Jul 2020 16:22:57 +0200 Subject: [PATCH] rework panel coloring logic based on tasks --- .../panel/package/contents/ui/main.qml | 7 +++++-- .../package/contents/ui/TaskSwitcher.qml | 5 +++++ .../taskpanel/package/contents/ui/main.qml | 20 ++++++++++++++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/containments/panel/package/contents/ui/main.qml b/containments/panel/package/contents/ui/main.qml index b6e61d64..165a5fb2 100644 --- a/containments/panel/package/contents/ui/main.qml +++ b/containments/panel/package/contents/ui/main.qml @@ -47,7 +47,9 @@ Item { property bool reorderingApps: false property var layoutManager: LayoutManager - readonly property bool showingApp: tasksModel.activeTask && tasksModel.activeTask.valid && !tasksModel.data(tasksModel.activeTask, TaskManager.AbstractTasksModel.IsFullScreen) || NanoShell.StartupFeedback.visible + readonly property bool showingApp: !plasmoid.nativeInterface.showDesktop && (hasTasks || NanoShell.StartupFeedback.visible) + + readonly property bool hasTasks: tasksModel.count > 0 Containment.onAppletAdded: { addApplet(applet, x, y); @@ -94,7 +96,8 @@ Item { screenGeometry: plasmoid.screenGeometry filterByScreen: plasmoid.configuration.showForCurrentScreenOnly - + //FIXME: workaround + Component.onCompleted: tasksModel.countChanged(); } PlasmaCore.DataSource { diff --git a/containments/taskpanel/package/contents/ui/TaskSwitcher.qml b/containments/taskpanel/package/contents/ui/TaskSwitcher.qml index 1fdaa9c1..243bd4a9 100644 --- a/containments/taskpanel/package/contents/ui/TaskSwitcher.qml +++ b/containments/taskpanel/package/contents/ui/TaskSwitcher.qml @@ -153,6 +153,11 @@ NanoShell.FullScreenOverlay { TaskManager.TasksModel { id: tasksModel + sortMode: TaskManager.TasksModel.SortVirtualDesktop + groupMode: TaskManager.TasksModel.GroupDisabled + + screenGeometry: plasmoid.screenGeometry + filterByScreen: plasmoid.configuration.showForCurrentScreenOnly } //This proxy is only used for "get" PlasmaCore.SortFilterModel { diff --git a/containments/taskpanel/package/contents/ui/main.qml b/containments/taskpanel/package/contents/ui/main.qml index 45769537..9a0e58ff 100644 --- a/containments/taskpanel/package/contents/ui/main.qml +++ b/containments/taskpanel/package/contents/ui/main.qml @@ -37,7 +37,9 @@ PlasmaCore.ColorScope { Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground - readonly property bool showingApp: tasksModel.activeTask && tasksModel.activeTask.valid && !tasksModel.data(tasksModel.activeTask, TaskManager.AbstractTasksModel.IsFullScreen) || NanoShell.StartupFeedback.visible + readonly property bool showingApp: !plasmoid.nativeInterface.showDesktop && (hasTasks || NanoShell.StartupFeedback.visible) + + readonly property bool hasTasks: tasksModel.count > 0 property QtObject taskSwitcher: taskSwitcherLoader.item ? taskSwitcherLoader.item : null Loader { @@ -52,12 +54,24 @@ PlasmaCore.ColorScope { TaskManager.TasksModel { id: tasksModel - sortMode: TaskManager.TasksModel.SortVirtualDesktop groupMode: TaskManager.TasksModel.GroupDisabled screenGeometry: plasmoid.screenGeometry filterByScreen: plasmoid.configuration.showForCurrentScreenOnly + sortMode: TaskManager.TasksModel.SortAlpha + virtualDesktop: virtualDesktopInfo.currentDesktop + activity: activityInfo.currentActivity + //FIXME: workaround + Component.onCompleted: tasksModel.countChanged(); + } + + TaskManager.VirtualDesktopInfo { + id: virtualDesktopInfo + } + + TaskManager.ActivityInfo { + id: activityInfo } MouseArea { @@ -153,7 +167,7 @@ PlasmaCore.ColorScope { anchors.left: parent.left height: parent.height width: parent.width/3 - enabled: taskSwitcher && taskSwitcher.tasksCount > 0; + enabled: root.hasTasks iconSource: "box" onClicked: { plasmoid.nativeInterface.showDesktop = false;