Revision control

++ // Copyright (C) 2021 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ import QtQuick
++ import QtWayland.Compositor
++ import QtQuick.Layouts
++ import QtQuick.Controls
++
++ import io.qt.examples 1.0
++
++ WaylandCompositor {
++ id: comp
++
++ ListModel { id: shellSurfaces }
++
++
++ WaylandOutput {
++ sizeFollowsWindow: true
++ window: Window {
++ width: 1024
++ height: 768
++ visible: true
++
++ ColumnLayout {
++ anchors.fill: parent
++ spacing: 0
++ Image {
++ fillMode: Image.Tile
++ source: "qrc:/images/background.png"
++ smooth: false
++ Layout.fillHeight: true
++ Layout.fillWidth: true
++ GridLayout {
++ columns: 3
++ Repeater {
++ model: shellSurfaces
++ ShellSurfaceItem {
++ id: chrome
++ shellSurface: modelData
++ visible: !shellSurface.minimized
++ onSurfaceDestroyed: shellSurfaces.remove(index)
++ }
++ }
++ }
++ }
++ Row {
++ id: taskbar
++ Layout.fillWidth: true
++ Repeater {
++ model: shellSurfaces
++ Button {
++ id: minimizeButton
++ checkable: true
++ text: modelData.windowTitle
++ onCheckedChanged: modelData.minimized = checked
++ checked: modelData.minimized
++ }
++ }
++ }
++ }
++ }
++ }
++
++ //! [ExampleShell]
++ ExampleShell {
++ id: shell
++ onShellSurfaceCreated: (shellSurface) => {
++ shellSurfaces.append({shellSurface: shellSurface});
++ }
++ }
++ //! [ExampleShell]
++ }