73 lines
2.2 KiB
QML
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
|
|
}
|
|
}
|
|
}
|