From 6cdcd8b56f8e7b90937fec274e8dd3f9732eb72d Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 10 Aug 2020 11:41:47 +0200 Subject: [PATCH] bury the thumbnail under a loader for now the screencasting item isn't always present --- .../taskpanel/package/contents/ui/Task.qml | 20 +++++------ .../package/contents/ui/TaskIcon.qml | 28 +++++++++++++++ .../package/contents/ui/Thumbnail.qml | 36 +++++++++++++++++++ 3 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 containments/taskpanel/package/contents/ui/TaskIcon.qml create mode 100644 containments/taskpanel/package/contents/ui/Thumbnail.qml diff --git a/containments/taskpanel/package/contents/ui/Task.qml b/containments/taskpanel/package/contents/ui/Task.qml index 5ce6a6cc..5e9b251c 100644 --- a/containments/taskpanel/package/contents/ui/Task.qml +++ b/containments/taskpanel/package/contents/ui/Task.qml @@ -39,9 +39,9 @@ Item { } function syncDelegateGeometry() { - let pos = pipeWireItem.mapToItem(tasksView, 0, 0); + let pos = pipeWireLoader.mapToItem(tasksView, 0, 0); if (window.visible) { - tasksModel.requestPublishDelegateGeometry(tasksModel.index(model.index, 0), Qt.rect(pos.x, pos.y, pipeWireItem.width, pipeWireItem.height), pipeWireItem); + tasksModel.requestPublishDelegateGeometry(tasksModel.index(model.index, 0), Qt.rect(pos.x, pos.y, pipeWireLoader.width, pipeWireLoader.height), pipeWireLoader); } else { // tasksModel.requestPublishDelegateGeometry(tasksModel.index(model.index, 0), Qt.rect(pos.x, pos.y, delegate.width, delegate.height), dummyWindowTask); } @@ -126,17 +126,15 @@ Item { } } } - TaskManager.PipeWireSourceItem { - id: pipeWireItem + Loader { + id: pipeWireLoader Layout.fillWidth: true Layout.fillHeight: true - //visible: waylandItem.nodeId > 0 - visible: true - nodeId: waylandItem.nodeId - - TaskManager.ScreencastingItem { - id: waylandItem - uuid: model.WinIdList[0] + source: Qt.resolvedUrl("./Thumbnail.qml") + onStatusChanged: { + if (status === Loader.Error) { + source = Qt.resolvedUrl("./TaskIcon.qml"); + } } } } diff --git a/containments/taskpanel/package/contents/ui/TaskIcon.qml b/containments/taskpanel/package/contents/ui/TaskIcon.qml new file mode 100644 index 00000000..3992ab2f --- /dev/null +++ b/containments/taskpanel/package/contents/ui/TaskIcon.qml @@ -0,0 +1,28 @@ +/* + * Copyright 2015 Marco Martin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.0 +import QtQuick.Layouts 1.1 +import org.kde.plasma.core 2.0 as PlasmaCore + + +PlasmaCore.IconItem { + usesPlasmaTheme: false + source: model.decoration +} diff --git a/containments/taskpanel/package/contents/ui/Thumbnail.qml b/containments/taskpanel/package/contents/ui/Thumbnail.qml new file mode 100644 index 00000000..716b9da8 --- /dev/null +++ b/containments/taskpanel/package/contents/ui/Thumbnail.qml @@ -0,0 +1,36 @@ +/* + * Copyright 2020 Marco Martin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.0 +import QtQuick.Layouts 1.1 +import QtQuick.Window 2.2 +import org.kde.taskmanager 0.1 as TaskManager + +TaskManager.PipeWireSourceItem { + //visible: waylandItem.nodeId > 0 + visible: true + nodeId: waylandItem.nodeId + + TaskManager.ScreencastingItem { + id: waylandItem + uuid: model.WinIdList[0] + } +} + +