Files
fedora-tools/plasma-task-group-shortcuts/Preview.qml
T

73 lines
2.2 KiB
QML

// SPDX-License-Identifier: MIT
import QtQuick
import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.plasma.core as PlasmaCore
import org.kde.plasma.components as PlasmaComponents
import org.kde.taskmanager as TaskManager
import org.kde.pipewire as PipeWire
PlasmaCore.Dialog {
id: root
property string windowId: ""
property string windowTitle: ""
property int position: 0
property int count: 0
visible: false
type: PlasmaCore.Dialog.Tooltip
// A Qt tooltip needs a parent surface; this standalone helper has none.
// Plasma's tooltip role still keeps it out of the taskbar and focus history.
flags: Qt.Tool | Qt.FramelessWindowHint | Qt.WindowDoesNotAcceptFocus | Qt.WindowTransparentForInput
hideOnWindowDeactivate: false
mainItem: ColumnLayout {
width: Kirigami.Units.gridUnit * 18
height: implicitHeight
spacing: Kirigami.Units.smallSpacing
Item {
Layout.fillWidth: true
Layout.preferredHeight: width * 9 / 16
Loader {
id: thumbnail
anchors.fill: parent
active: root.visible && root.windowId !== ""
sourceComponent: PipeWire.PipeWireSourceItem {
nodeId: request.nodeId
objectSerial: request.objectSerial
TaskManager.ScreencastingRequest {
id: request
uuid: root.windowId
}
}
}
PlasmaComponents.Label {
anchors.centerIn: parent
visible: !thumbnail.item || !thumbnail.item.ready
text: qsTr("Window preview unavailable")
opacity: 0.7
}
}
PlasmaComponents.Label {
Layout.fillWidth: true
text: root.windowTitle
elide: Text.ElideRight
maximumLineCount: 1
}
PlasmaComponents.Label {
Layout.fillWidth: true
text: qsTr("%1 of %2 · Release Meta to switch · Esc to cancel").arg(root.position).arg(root.count)
wrapMode: Text.WordWrap
opacity: 0.7
}
}
}