1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Window
import QtWayland.Compositor
WaylandOutput {
id: output
property alias surfaceArea: background
sizeFollowsWindow: true
window: Window {
id: screen
property QtObject output
width: 1600
height: 900
visible: true
Rectangle {
id: sidebar
width: 150
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
color: "lightgray"
Column {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
spacing: 5
Repeater {
model: comp.itemList
Rectangle {
height: 36
width: sidebar.width - 5
color: "white"
radius: 5
Text {
text: "window: " + modelData.shellSurface.title + "[" + modelData.shellSurface.className
+ (modelData.isCustom ? "]\nfont size: " + modelData.fontSize :"]\n No extension")
color: modelData.isCustom ? "black" : "darkgray"
}
MouseArea {
enabled: modelData.isCustom
anchors.fill: parent
onWheel: {
if (wheel.angleDelta.y > 0)
modelData.fontSize++
else if (wheel.angleDelta.y < 0 && modelData.fontSize > 3)
modelData.fontSize--
}
onDoubleClicked: {
output.compositor.customExtension.close(modelData.surface)
}
}
}
}
Text {
visible: comp.itemList.length > 0
width: sidebar.width - 5
text: "Mouse wheel to change font size. Double click to close"
wrapMode: Text.Wrap
}
}
}
WaylandMouseTracker {
id: mouseTracker
anchors.left: sidebar.right
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
windowSystemCursorEnabled: !clientCursor.visible
Image {
id: background
anchors.fill: parent
fillMode: Image.Tile
source: "qrc:/images/background.png"
smooth: false
}
WaylandCursorItem {
id: clientCursor
x: mouseTracker.mouseX
y: mouseTracker.mouseY
seat: output.compositor.defaultSeat
}
Rectangle {
anchors.top: parent.top
anchors.right: parent.right
width: 100
height: 100
property bool on : true
color: on ? "#DEC0DE" : "#FACADE"
Text {
anchors.fill: parent
text: "Toggle window decorations"
wrapMode: Text.WordWrap
}
MouseArea {
anchors.fill: parent
onClicked: {
parent.on = !parent.on
comp.setDecorations(parent.on);
}
}
}
}
}
}
|